diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 87a355a..556083c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,12 +7,20 @@ on: jobs: publish: - name: ${{ matrix.os }} + name: ${{ matrix.name }} runs-on: ${{ matrix.os }} strategy: matrix: include: - - name: linux + - name: Windows + os: windows-latest + artifact_name: target/release/caesar.exe + asset_name: caesar-windows + - name: MacOS + os: macos-latest + artifact_name: target/release/caesar + asset_name: caesar-macos + - name: Linux os: ubuntu-latest artifact_name: target/release/caesar asset_name: caesar-linux @@ -21,12 +29,23 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Install deps + - name: Install deps on MacOS + if: matrix.os == 'macos-latest' + run: brew install protobuf + + - name: Install deps on Windows + if: matrix.os == 'windows-latest' + run: choco install protobuf + + - name: Install deps on Linux + if: matrix.os == 'ubuntu-latest' run: sudo apt-get -y install protobuf-compiler - uses: actions-rs/toolchain@v1 with: toolchain: stable + profile: minimal + override: true - name: Build run: cargo build --release --locked @@ -36,3 +55,25 @@ jobs: with: name: ${{ matrix.asset_name }} path: ${{ matrix.artifact_name }} + + - name: Create Release + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false + body: 'Release of ${{ github.ref }}' + + - name: Upload Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ${{ steps.upload_binaries.outputs.path }} + asset_name: ${{ matrix.asset_name }} + asset_content_type: application/octet-stream