mirror of
https://github.com/shadowsocks/shadowsocks-rust.git
synced 2026-11-06 08:14:07 +00:00
rustls v0.23 starts to use aws-lc as the default crypto implementation. But now not all the dependencies are upgraded to the latest rustls. If there are still any older version of rustls exists in the build process, aws-lc may fails. - ref aws/aws-lc-rs#428 - ref aws/aws-lc-rs#427 - ref aws/aws-lc-rs#426
155 lines
4.3 KiB
YAML
155 lines
4.3 KiB
YAML
name: Build Releases
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: 'Release Tag'
|
|
required: true
|
|
type: string
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
build-cross:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
RUST_BACKTRACE: full
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
target:
|
|
- i686-unknown-linux-musl
|
|
- x86_64-pc-windows-gnu
|
|
- x86_64-unknown-linux-gnu
|
|
- x86_64-unknown-linux-musl
|
|
- armv7-unknown-linux-musleabihf
|
|
- armv7-unknown-linux-gnueabihf
|
|
- arm-unknown-linux-gnueabi
|
|
- arm-unknown-linux-gnueabihf
|
|
- arm-unknown-linux-musleabi
|
|
- arm-unknown-linux-musleabihf
|
|
- aarch64-unknown-linux-gnu
|
|
- aarch64-unknown-linux-musl
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Rust
|
|
run: |
|
|
rustup set profile minimal
|
|
rustup toolchain install stable
|
|
rustup default stable
|
|
rustup override set stable
|
|
rustup target add --toolchain stable ${{ matrix.target }}
|
|
|
|
- name: Install cross
|
|
run: cargo install cross
|
|
|
|
- name: Build ${{ matrix.target }}
|
|
timeout-minutes: 120
|
|
run: |
|
|
compile_target=${{ matrix.target }}
|
|
|
|
compile_features="-f full"
|
|
|
|
if [[ "$compile_target" == *"-windows-"* ]]; then
|
|
compile_features="$compile_features -f winservice"
|
|
fi
|
|
|
|
if [[ "$compile_target" == "mips-"* || "$compile_target" == "mipsel-"* || "$compile_target" == "mips64-"* || "$compile_target" == "mips64el-"* ]]; then
|
|
sudo apt-get update -y && sudo apt-get install -y upx;
|
|
if [[ "$?" == "0" ]]; then
|
|
compile_compress="-u"
|
|
fi
|
|
fi
|
|
|
|
cd build
|
|
./build-release -t ${{ matrix.target }} $compile_features $compile_compress
|
|
|
|
- name: Upload Github Assets
|
|
uses: softprops/action-gh-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
files: build/release/*
|
|
prerelease: ${{ contains(github.ref_name, '-') }}
|
|
tag_name: ${{ inputs.tag || github.ref_name }}
|
|
|
|
build-unix:
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
BUILD_EXTRA_FEATURES: "full"
|
|
RUST_BACKTRACE: full
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# os: [ubuntu-latest, macos-latest]
|
|
os: [macos-latest]
|
|
target:
|
|
- x86_64-apple-darwin
|
|
- aarch64-apple-darwin
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install GNU tar
|
|
if: runner.os == 'macOS'
|
|
run: |
|
|
brew install gnu-tar
|
|
# echo "::add-path::/usr/local/opt/gnu-tar/libexec/gnubin"
|
|
echo "/usr/local/opt/gnu-tar/libexec/gnubin" >> $GITHUB_PATH
|
|
|
|
- name: Install Rust
|
|
run: |
|
|
rustup set profile minimal
|
|
rustup toolchain install stable
|
|
rustup default stable
|
|
rustup override set stable
|
|
rustup target add --toolchain stable ${{ matrix.target }}
|
|
|
|
- name: Build release
|
|
shell: bash
|
|
run: |
|
|
./build/build-host-release -t ${{ matrix.target }}
|
|
|
|
- name: Upload Github Assets
|
|
uses: softprops/action-gh-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
files: build/release/*
|
|
prerelease: ${{ contains(github.ref_name, '-') }}
|
|
tag_name: ${{ inputs.tag || github.ref_name }}
|
|
|
|
build-windows:
|
|
runs-on: windows-latest
|
|
env:
|
|
RUSTFLAGS: "-C target-feature=+crt-static"
|
|
RUST_BACKTRACE: full
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ilammy/setup-nasm@v1
|
|
|
|
- name: Install Rust
|
|
run: |
|
|
rustup set profile minimal
|
|
rustup toolchain install stable
|
|
rustup default stable
|
|
rustup override set stable
|
|
|
|
- name: Build release
|
|
run: |
|
|
pwsh ./build/build-host-release.ps1 "full winservice"
|
|
|
|
- name: Upload Github Assets
|
|
uses: softprops/action-gh-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
files: build/release/*
|
|
prerelease: ${{ contains(github.ref_name, '-') }}
|
|
tag_name: ${{ inputs.tag || github.ref_name }}
|