| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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
|