name: Release on: push: branches: - master jobs: build: runs-on: ubuntu-latest strategy: matrix: target: [x86_64-pc-windows-gnu, x86_64-unknown-linux-gnu] steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up Rust uses: actions-rs/toolchain@v1 with: toolchain: stable - name: Install Windows target run: rustup target add x86_64-pc-windows-gnu - name: Install MinGW-w64 run: sudo apt-get update && sudo apt-get install -y mingw-w64 - name: Build run: cargo build --release --target ${{ matrix.target }} - name: Upload artifact uses: actions/upload-artifact@v2 with: name: ${{ matrix.target }}-binary path: target/${{ matrix.target }}/release/ release: needs: build runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Get previous tag id: previoustag uses: 'WyriHaximus/github-action-get-previous-tag@v1' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Get next minor version id: semver uses: 'WyriHaximus/github-action-next-semvers@v1' with: version: ${{ steps.previoustag.outputs.tag }} - name: Create Release :) id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ steps.semver.outputs.next_minor }} release_name: Release ${{ steps.semver.outputs.next_minor }} draft: false prerelease: false - name: Upload Release Asset (Windows) uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: target/x86_64-pc-windows-gnu/release/ asset_name: windows-binary.zip asset_content_type: application/zip - name: Upload Release Asset (Linux) uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: target/x86_64-unknown-linux-gnu/release/ asset_name: linux-binary.tar.gz asset_content_type: application/gzip