diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..666e05e --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,37 @@ +name: release + +on: + push: + tags: ['v*'] + +jobs: + release: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout sources + uses: actions/checkout@v6 + + - name: Install Rust toolchain with musl target + uses: dtolnay/rust-toolchain@stable + with: + toolchain: '1.88' + targets: x86_64-unknown-linux-musl + + - name: Install musl tools + run: sudo apt-get update && sudo apt-get install -y musl-tools + + - name: Build release binary + run: cargo build --release --locked --target x86_64-unknown-linux-musl + + - name: Package binary + run: | + tar -czf subway-${{ github.ref_name }}-x86_64-unknown-linux-musl.tar.gz \ + -C target/x86_64-unknown-linux-musl/release subway + + - name: Publish GitHub Release + uses: softprops/action-gh-release@v2 + with: + files: subway-*.tar.gz + generate_release_notes: true