name: Publish on: push: tags: - "*" jobs: publish: name: ${{ matrix.target }} runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-latest target: x86_64-unknown-linux-gnu use-cross: false - os: windows-latest target: x86_64-pc-windows-msvc use-cross: false - os: macos-latest target: x86_64-apple-darwin use-cross: false steps: - name: Checkout repository uses: actions/checkout@v2 with: fetch-depth: 1 - name: Set the version id: version run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/} - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true target: ${{ matrix.target }} - name: Build angelsharkcli uses: actions-rs/cargo@v1 with: use-cross: ${{ matrix.use-cross }} command: build args: --target ${{ matrix.target }} --release --locked --bin angelsharkcli - name: Build angelsharkd uses: actions-rs/cargo@v1 with: use-cross: ${{ matrix.use-cross }} command: build args: --target ${{ matrix.target }} --release --locked --bin angelsharkd - name: Strip binaries if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' run: strip target/${{ matrix.target }}/release/angelsharkcli && strip target/${{ matrix.target }}/release/angelsharkd - name: Upload angelsharkcli nix binaries to release if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' uses: svenstaro/upload-release-action@v1-release with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/${{ matrix.target }}/release/angelsharkcli asset_name: angelsharkcli-${{ steps.version.outputs.VERSION }}-${{ matrix.target }} tag: ${{ github.ref }} - name: Upload angelsharkd nix binaries to release if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' uses: svenstaro/upload-release-action@v1-release with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/${{ matrix.target }}/release/angelsharkd asset_name: angelsharkd-${{ steps.version.outputs.VERSION }}-${{ matrix.target }} tag: ${{ github.ref }} - name: Upload angelsharkcli Windows binaries to release if: matrix.os == 'windows-latest' uses: svenstaro/upload-release-action@v1-release with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/${{ matrix.target }}/release/angelsharkcli.exe asset_name: angelsharkcli-${{ steps.version.outputs.VERSION }}-${{ matrix.target }}.exe tag: ${{ github.ref }} - name: Upload angelsharkd binaries to release if: matrix.os == 'windows-latest' uses: svenstaro/upload-release-action@v1-release with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/${{ matrix.target }}/release/angelsharkd.exe asset_name: angelsharkd-${{ steps.version.outputs.VERSION }}-${{ matrix.target }}.exe tag: ${{ github.ref }}