From 09ad151b5e1e8c9b5f09867760944aad85ed3f7a Mon Sep 17 00:00:00 2001 From: Chance Date: Sun, 20 Apr 2025 18:26:14 -0400 Subject: [PATCH] fix(ci): caching and vulkan builds, add tests --- .forgejo/workflows/build-release.yml | 79 +++++++++++++++++++++++----- 1 file changed, 67 insertions(+), 12 deletions(-) diff --git a/.forgejo/workflows/build-release.yml b/.forgejo/workflows/build-release.yml index f7c8b29..5ef6aba 100644 --- a/.forgejo/workflows/build-release.yml +++ b/.forgejo/workflows/build-release.yml @@ -21,7 +21,9 @@ jobs: path: | ~/.cargo/bin /tmp/zig - key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} + key: cargo-tools-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + cargo-tools- - name: ๐Ÿฆ€ Install Rust toolchain uses: https://github.com/actions-rs/toolchain@v1 @@ -39,9 +41,48 @@ jobs: tar -Jxf zig-linux-x86_64.tar.xz -C /tmp/zig --strip-components=1 cargo install cargo-zigbuild + cargo-test: + name: ๐Ÿงช Run Cargo Tests + needs: [setup] + runs-on: ubuntu-latest + steps: + - name: ๐Ÿ“ฅ Checkout source + uses: https://github.com/actions/checkout@v4 + + - name: ๐Ÿ—„๏ธ Restore Cargo cache + uses: https://github.com/actions/cache@v4 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + cargo- + + - name: ๐Ÿฆ€ Install Rust toolchain + if: steps.restore-cargo-cache.outputs.cache-hit != 'true' + uses: https://github.com/actions-rs/toolchain@v1 + with: + toolchain: stable + components: rust-src + override: true + + - name: ๐Ÿฆ€ Install Vulkan tools + run: | + apt update + apt install -y vulkan-tools glslc + + + - name: ๐Ÿš€ Run tests + uses: https://github.com/actions-rs/cargo@v1 + with: + command: test + args: --release --all + build: name: ๐Ÿ—๏ธ Build ${{ matrix.target }} - needs: setup + needs: [setup, cargo-test] runs-on: ubuntu-latest strategy: fail-fast: false @@ -49,7 +90,7 @@ jobs: target: - x86_64-unknown-linux-gnu - aarch64-unknown-linux-gnu - - x86_64-pc-windows-msvc + # - x86_64-pc-windows-msvc include: - target: x86_64-unknown-linux-gnu binary_name: zenyx-x86_64-linux @@ -57,9 +98,9 @@ jobs: - target: aarch64-unknown-linux-gnu binary_name: zenyx-aarch64-linux ext: "" - - target: x86_64-pc-windows-msvc - binary_name: zenyx-x86_64-windows-msvc.exe - ext: ".exe" + # - target: x86_64-pc-windows-msvc + # binary_name: zenyx-x86_64-windows-msvc.exe + # ext: ".exe" steps: - name: ๐Ÿ“ฅ Checkout source @@ -71,7 +112,10 @@ jobs: path: | ~/.cargo/bin /tmp/zig - key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} + key: cargo-tools-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + cargo-tools- + - name: ๐Ÿ“ Add Zig to PATH run: echo "/tmp/zig" >> $GITHUB_PATH @@ -90,20 +134,31 @@ jobs: ~/.cargo/registry ~/.cargo/git target - key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} + key: cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: | - cargo-${{ matrix.target }}- + cargo- + - name: ๐Ÿฆ€ Install Vulkan tools + run: | + apt update + apt install -y vulkan-tools glslc - name: ๐Ÿš€ Build release binary - run: cargo zigbuild --target ${{ matrix.target }} --release + uses: https://github.com/actions-rs/cargo@v1 + with: + command: zigbuild + args: --target ${{ matrix.target }} --release - name: ๐Ÿ“ฆ Package artifact run: | mkdir -p artifacts cp target/${{ matrix.target }}/release/zenyx${{ matrix.ext }} artifacts/${{ matrix.binary_name }} + ls + du -sh artifacts + ls -lah artifacts + ls -lah target/${{ matrix.target }}/release - name: โฌ†๏ธ Upload artifact uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: - name: ${{ matrix.binary_name }} - path: artifacts/${{ matrix.binary_name }} \ No newline at end of file + name: ${{ matrix.binary_name }}.zip + path: artifacts \ No newline at end of file