name: Build on: push: tags: - '*' jobs: publish: name: Building ${{ matrix.build_target }} [${{ matrix.graphics }}] runs-on: ${{ matrix.os }} strategy: matrix: build_target: [linux, macos, windows] graphics: [glow, wgpu] include: - build_target: linux os: ubuntu-latest - build_target: macos os: macos-latest - build_target: windows os: windows-latest - graphics: glow renderer: "-opengl" - graphics: wgpu renderer: '' # Vulkan but we don't want this in the binary filename steps: - name: Install Rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true target: ${{ matrix.target }} profile: minimal - name: Install Linux dependencies if: matrix.os == 'ubuntu-latest' run: | sudo apt-get -qq update sudo apt-get install -y libxkbcommon-dev lld - uses: actions/checkout@v2 - name: Cargo build uses: actions-rs/cargo@v1 with: command: build args: --release --features ${{ matrix.graphics }} - name: Renaming binaries [Windows] if: matrix.os == 'windows-latest' run: mv target/release/uad_gui.exe target/release/uad_gui-${{ matrix.build_target }}${{ matrix.renderer }}.exe - name: Renaming binaries [Others] if: matrix.os != 'windows-latest' run: mv target/release/uad_gui target/release/uad_gui-${{ matrix.build_target }}${{ matrix.renderer }} - name: Tarball Linux binaries if: matrix.os == 'ubuntu-latest' run: tar --remove-files -czf target/release/uad_gui-linux${{ matrix.renderer }}{.tar.gz,} - name: Create pre-release uses: softprops/action-gh-release@v1 with: body_path: ${{ github.workspace }}/CHANGELOG.md files: target/release/uad_gui-* prerelease: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}