2022-01-04 09:59:25 +01:00
|
|
|
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
|
2022-01-06 11:53:46 +01:00
|
|
|
- os: ubuntu-latest
|
|
|
|
target: arm-unknown-linux-musleabi
|
|
|
|
exe: rathole
|
|
|
|
- os: ubuntu-latest
|
|
|
|
target: arm-unknown-linux-musleabihf
|
|
|
|
exe: rathole
|
|
|
|
- os: ubuntu-latest
|
|
|
|
target: armv7-unknown-linux-musleabihf
|
|
|
|
exe: rathole
|
2022-01-04 09:59:25 +01:00
|
|
|
- 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: Strip
|
2022-01-04 10:07:32 +01:00
|
|
|
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
|
|
|
|
continue-on-error: true
|
|
|
|
run: strip target/${{ matrix.target }}/release/${{ matrix.exe }}
|
2022-01-04 09:59:25 +01:00
|
|
|
- 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
|