name: Release on: push: tags: - 'v*' env: CARGO_TERM_COLOR: always jobs: build: name: Build strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] include: - os: ubuntu-latest target: x86_64-unknown-linux-gnu artifact_name: nettest asset_name: nettest-linux-x86_64 - os: windows-latest target: x86_64-pc-windows-msvc artifact_name: nettest.exe asset_name: nettest-windows-x86_64.exe - os: macos-latest target: x86_64-apple-darwin artifact_name: nettest asset_name: nettest-macos-x86_64 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: targets: ${{ matrix.target }} - uses: Swatinem/rust-cache@v2 - name: Build run: cargo build --release --target ${{ matrix.target }} - name: Upload artifact uses: actions/upload-artifact@v3 with: name: ${{ matrix.asset_name }} path: target/${{ matrix.target }}/release/${{ matrix.artifact_name }} release: name: Release needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Download artifacts uses: actions/download-artifact@v3 - name: Create Release uses: softprops/action-gh-release@v1 with: files: | nettest-linux-x86_64/nettest nettest-windows-x86_64.exe/nettest.exe nettest-macos-x86_64/nettest body_path: CHANGELOG.md env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}