Enable circle-ci

This commit is contained in:
zonyitoo
2020-02-05 01:02:56 +08:00
parent 80b3212cdd
commit 84b4227eb5
5 changed files with 86 additions and 9 deletions

24
.circleci/config.yml Normal file
View File

@@ -0,0 +1,24 @@
version: 2.1
jobs:
build:
docker:
- image: circleci/rust:latest
steps:
- checkout
- run: |
sudo apt-get update
sudo apt-get install -y libssl-dev libsodium-dev
- restore_cache:
key: cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
- run: |
export SODIUM_USE_PKG_CONFIG=1
export OPENSSL_STATIC=1
./build-host-release
- save_cache:
paths:
- /usr/local/cargo/registry
- ./target
key: cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
- store_artifacts:
path: ./build/release
destination: releases

4
.gitignore vendored
View File

@@ -1,7 +1,5 @@
/target
/build/*.tar.gz
/build/*.tar.xz
/build/*.zip
/build/release
/build/target
/build/install
/build/*.sha256

View File

@@ -2,10 +2,12 @@
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/2029e102e1bd46fb9423cb35980636b7)](https://app.codacy.com/app/zonyitoo/shadowsocks-rust?utm_source=github.com&utm_medium=referral&utm_content=shadowsocks/shadowsocks-rust&utm_campaign=Badge_Grade_Dashboard)
[![Build Status](https://img.shields.io/travis/shadowsocks/shadowsocks-rust.svg)](https://travis-ci.org/shadowsocks/shadowsocks-rust)
[![Build status](https://ci.appveyor.com/api/projects/status/h3ny0dov7v9xioa5?svg=true)](https://ci.appveyor.com/project/zonyitoo/shadowsocks-rust-0grjf)
[![License](https://img.shields.io/github/license/zonyitoo/shadowsocks-rust.svg)](https://github.com/zonyitoo/shadowsocks-rust)
[![crates.io](https://img.shields.io/crates/v/shadowsocks-rust.svg)](https://crates.io/crates/shadowsocks-rust)
[![dependency status](https://deps.rs/repo/github/shadowsocks/shadowsocks-rust/status.svg)](https://deps.rs/repo/github/shadowsocks/shadowsocks-rust)
[![Release](https://img.shields.io/github/release/shadowsocks/shadowsocks-rust.svg)](https://github.com/shadowsocks/shadowsocks-rust/releases)
[![CircleCI](https://circleci.com/gh/shadowsocks/shadowsocks-rust.svg?style=svg)](https://circleci.com/gh/shadowsocks/shadowsocks-rust)
This is a port of [shadowsocks](https://github.com/shadowsocks/shadowsocks).

50
build-host-release Executable file
View File

@@ -0,0 +1,50 @@
#!/bin/bash
ROOT_DIR=$( cd $( dirname $0 ) && pwd )
VERSION=$(grep -E '^version' "${ROOT_DIR}/Cargo.toml" | awk '{print $3}' | sed 's/"//g')
HOST_TRIPLE=$(rustc -Vv | grep 'host:' | awk '{print $2}')
cargo build --release --features "miscreant"
if [[ "$?" != "0" ]]; then
exit $?;
fi
TARGET_SUFFIX=""
if [[ "${HOST_TRIPLE}" == *"-windows-"* ]]; then
TARGET_SUFFIX=".exe"
fi
TARGETS=("sslocal${TARGET_SUFFIX}" "ssserver${TARGET_SUFFIX}" "ssurl${TARGET_SUFFIX}" "sstunnel${TARGET_SUFFIX}")
if [[ "${HOST_TRIPLE}" == *"-linux-"* ]]; then
TARGETS+=("ssredir${TARGET_SUFFIX}")
fi
RELEASE_FOLDER="${ROOT_DIR}/build/release"
RELEASE_PACKAGE_NAME="shadowsocks-v${VERSION}-stable.${HOST_TRIPLE}"
mkdir -p "${RELEASE_FOLDER}"
# Into release folder
cd "target/release"
if [[ "${HOST_TRIPLE}" == *"-windows-"* ]]; then
# For Windows, use zip
RELEASE_PACKAGE_FILE_NAME="${RELEASE_PACKAGE_NAME}.zip"
RELEASE_PACKAGE_FILE_PATH="${RELEASE_FOLDER}/${RELEASE_PACKAGE_FILE_NAME}"
zip "${RELEASE_PACKAGE_FILE_PATH}" "${TARGETS[@]}"
# Checksum
cd "${RELEASE_FOLDER}"
shasum -a 256 "${RELEASE_PACKAGE_FILE_NAME}" > "${RELEASE_PACKAGE_FILE_NAME}.sha256"
else
# For others, Linux, OS X, uses tar.xz
RELEASE_PACKAGE_FILE_NAME="${RELEASE_PACKAGE_NAME}.tar.xz"
RELEASE_PACKAGE_FILE_PATH="${RELEASE_FOLDER}/${RELEASE_PACKAGE_FILE_NAME}"
tar -cJf "${RELEASE_PACKAGE_FILE_PATH}" "${TARGETS[@]}"
# Checksum
cd "${RELEASE_FOLDER}"
shasum -a 256 "${RELEASE_PACKAGE_FILE_NAME}" > "${RELEASE_PACKAGE_FILE_NAME}.sha256"
fi

View File

@@ -39,9 +39,12 @@ function build() {
exit $?
fi
PKG_DIR="${CUR_DIR}/release"
mkdir -p "${PKG_DIR}"
if [[ "$TARGET" == *"-linux-"* ]]; then
PKG_NAME="shadowsocks-v${VERSION}-stable.${TARGET}.tar.xz"
PKG_PATH="${CUR_DIR}/${PKG_NAME}"
PKG_NAME="shadowsocks-v${VERSION}.${TARGET}.tar.xz"
PKG_PATH="${PKG_DIR}/${PKG_NAME}"
echo "* Packaging XZ in ${PKG_PATH} ..."
cd ${RELEASE_DIR}
@@ -56,11 +59,11 @@ function build() {
exit $?
fi
cd "${CUR_DIR}"
cd "${PKG_DIR}"
shasum -a 256 "${PKG_NAME}" > "${PKG_NAME}.sha256"
elif [[ "$TARGET" == *"-windows-"* ]]; then
PKG_NAME="shadowsocks-v${VERSION}-stable.${TARGET}.zip"
PKG_PATH="${CUR_DIR}/${PKG_NAME}"
PKG_NAME="shadowsocks-v${VERSION}.${TARGET}.zip"
PKG_PATH="${PKG_DIR}/${PKG_NAME}"
echo "* Packaging ZIP in ${PKG_PATH} ..."
cd ${RELEASE_DIR}
@@ -74,7 +77,7 @@ function build() {
exit $?
fi
cd "${CUR_DIR}"
cd "${PKG_DIR}"
shasum -a 256 "${PKG_NAME}" > "${PKG_NAME}.sha256"
fi