From 18cbba2b131aa1c604f95088e60acff4f57001bb Mon Sep 17 00:00:00 2001 From: 0x192 Date: Sat, 8 Jan 2022 19:41:52 +0100 Subject: [PATCH] Refactor workflow and use tarballs for linux builds - Better usage of the matrix strategy - Linux builds are now released as a tarball (.tar.gz) --- .github/workflows/build_artifacts.yaml | 36 ++++++++++++-------------- .github/workflows/release.yml | 34 +++++++++++------------- 2 files changed, 31 insertions(+), 39 deletions(-) diff --git a/.github/workflows/build_artifacts.yaml b/.github/workflows/build_artifacts.yaml index 42202ea..5b7192c 100644 --- a/.github/workflows/build_artifacts.yaml +++ b/.github/workflows/build_artifacts.yaml @@ -3,11 +3,12 @@ on: workflow_dispatch jobs: build: - name: Building ${{ matrix.build_target }} + 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 @@ -15,7 +16,10 @@ jobs: 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 @@ -30,30 +34,22 @@ jobs: sudo apt-get -qq update sudo apt-get install -y libxkbcommon-dev lld - uses: actions/checkout@v2 - - name: Cargo build (WGPU feature) + - name: Cargo build uses: actions-rs/cargo@v1 with: command: build - args: --release - - name: Renaming + 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 }}.exe - - name: Renaming + 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 }} - - name: Cargo build (Glow feature) - uses: actions-rs/cargo@v1 - with: - command: build - args: --release --features glow - - name: Renaming - if: matrix.os == 'windows-latest' - run: mv target/release/uad_gui.exe target/release/uad_gui-${{ matrix.build_target }}-opengl.exe - - name: Renaming - if: matrix.os != 'windows-latest' - run: mv target/release/uad_gui target/release/uad_gui-${{ matrix.build_target }}-opengl + 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: Upload artifact uses: actions/upload-artifact@v2 with: - name: uad_gui-${{ matrix.build_target }} + name: uad_gui-${{ matrix.build_target }}${{ matrix.renderer }} path: target/release/uad_gui-${{ matrix.build_target }}* diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 33240ce..722196b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,11 +6,12 @@ on: jobs: publish: - name: Building ${{ matrix.build_target }} + 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 @@ -18,7 +19,10 @@ jobs: 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 @@ -33,28 +37,20 @@ jobs: sudo apt-get -qq update sudo apt-get install -y libxkbcommon-dev lld - uses: actions/checkout@v2 - - name: Cargo build (WGPU feature) + - name: Cargo build uses: actions-rs/cargo@v1 with: command: build - args: --release - - name: Renaming + 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 }}.exe - - name: Renaming + 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 }} - - name: Cargo build (Glow feature) - uses: actions-rs/cargo@v1 - with: - command: build - args: --release --features glow - - name: Renaming - if: matrix.os == 'windows-latest' - run: mv target/release/uad_gui.exe target/release/uad_gui-${{ matrix.build_target }}-opengl.exe - - name: Renaming - if: matrix.os != 'windows-latest' - run: mv target/release/uad_gui target/release/uad_gui-${{ matrix.build_target }}-opengl + 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: