mirror of https://github.com/rapiz1/rathole.git
92 lines
2.7 KiB
YAML
92 lines
2.7 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*'
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
release:
|
|
name: Cross build for ${{ matrix.target }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-latest
|
|
target: x86_64-unknown-linux-gnu
|
|
exe: rathole
|
|
- os: ubuntu-latest
|
|
target: x86_64-unknown-linux-musl
|
|
exe: rathole
|
|
- os: ubuntu-latest
|
|
target: aarch64-unknown-linux-musl
|
|
exe: rathole
|
|
- os: ubuntu-latest
|
|
target: mips-unknown-linux-musl
|
|
exe: rathole
|
|
- os: ubuntu-latest
|
|
target: mipsel-unknown-linux-musl
|
|
exe: rathole
|
|
- os: ubuntu-latest
|
|
target: mips64-unknown-linux-gnuabi64
|
|
exe: rathole
|
|
- os: ubuntu-latest
|
|
target: mips64el-unknown-linux-gnuabi64
|
|
exe: rathole
|
|
|
|
- os: macos-latest
|
|
target: x86_64-apple-darwin
|
|
exe: rathole
|
|
|
|
- os: windows-latest
|
|
target: x86_64-pc-windows-msvc
|
|
exe: rathole.exe
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: stable
|
|
- uses: Swatinem/rust-cache@v1
|
|
with:
|
|
key: ${{ matrix.target }}
|
|
- name: Install cross
|
|
run: cargo install --version 0.1.16 cross
|
|
- name: Run tests
|
|
run: cross test --release --target ${{ matrix.target }} --verbose
|
|
- name: Build release
|
|
run: cross build --release --target ${{ matrix.target }}
|
|
- name: Install cargo-strip
|
|
run: cargo install cargo-strip
|
|
- name: Strip
|
|
run: cargo strip --target ${{ matrix.target }}
|
|
- name: Run UPX
|
|
# Upx may not support some platforms. Ignore the errors
|
|
continue-on-error: true
|
|
if: matrix.os == 'ubuntu-latest'
|
|
uses: crazy-max/ghaction-upx@v1
|
|
with:
|
|
version: v3.96
|
|
files: target/${{ matrix.target }}/release/${{ matrix.exe }}
|
|
args: -q --best --lzma
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: rathole-${{ matrix.target }}
|
|
path: target/${{ matrix.target }}/release/${{ matrix.exe }}
|
|
- name: Zip Release
|
|
uses: TheDoctor0/zip-release@0.6.0
|
|
with:
|
|
type: zip
|
|
filename: rathole-${{ matrix.target }}.zip
|
|
directory: target/${{ matrix.target }}/release/
|
|
path: ${{ matrix.exe }}
|
|
- name: Publish
|
|
uses: softprops/action-gh-release@v1
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
with:
|
|
files: target/${{ matrix.target }}/release/rathole-${{ matrix.target }}.zip
|
|
generate_release_notes: true
|