From ef0c66efa5bd7f21a278a66bc00dc5688ec79125 Mon Sep 17 00:00:00 2001 From: Chance Date: Tue, 22 Apr 2025 00:10:33 -0400 Subject: [PATCH] feat(ci): full macOS support for nix workflow --- .forgejo/workflows/build-release-nix.yml | 80 ----------- .forgejo/workflows/build-release.yml | 172 +++++------------------ 2 files changed, 34 insertions(+), 218 deletions(-) delete mode 100644 .forgejo/workflows/build-release-nix.yml diff --git a/.forgejo/workflows/build-release-nix.yml b/.forgejo/workflows/build-release-nix.yml deleted file mode 100644 index aa59de6..0000000 --- a/.forgejo/workflows/build-release-nix.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: Build Zenyx โšก - -on: - push: - pull_request: - types: [opened, synchronize, reopened] - -jobs: - cargo-test: - name: ๐Ÿงช Run Cargo Tests - runs-on: nixos-latest - steps: - - name: ๐Ÿ“ฅ Checkout source - uses: https://github.com/actions/checkout@v4 - - - name: ๐Ÿš€ Setup & Run tests - run: | - nix-shell --run " - git-lfs fetch - git-lfs pull - cargo test --release --all - " - - build: - name: ๐Ÿ—๏ธ Build ${{ matrix.target }} - needs: [cargo-test] - runs-on: nixos-latest - strategy: - fail-fast: false - matrix: - target: - - x86_64-unknown-linux-gnu - - aarch64-unknown-linux-gnu - - x86_64-pc-windows-msvc - - aarch64-pc-windows-msvc - include: - - target: x86_64-unknown-linux-gnu - binary_name: zenyx-x86_64-linux - ext: "" - command: zigbuild - args: --target x86_64-unknown-linux-gnu --release - - target: aarch64-unknown-linux-gnu - binary_name: zenyx-aarch64-linux - ext: "" - command: zigbuild - args: --target aarch64-unknown-linux-gnu --release - - target: x86_64-pc-windows-msvc - binary_name: zenyx-x86_64-windows - ext: ".exe" - command: xwin build - args: --target x86_64-pc-windows-msvc --release - - target: aarch64-pc-windows-msvc - binary_name: zenyx-aarch64-windows - ext: ".exe" - command: xwin build - args: --target aarch64-pc-windows-msvc --release - - steps: - - name: ๐Ÿ“ฅ Checkout source - uses: https://github.com/actions/checkout@v4 - - - name: ๐Ÿš€ Install Target & Build release binary - run: | - nix-shell --run " - git-lfs fetch --all - git-lfs pull - cargo ${{ matrix.command }} ${{ matrix.args }} - " - - - name: ๐Ÿ“ฆ Package artifact - run: | - mkdir -p artifacts - cp target/${{ matrix.target }}/release/zenyx${{ matrix.ext }} artifacts/${{ matrix.binary_name }}${{ matrix.ext }} - - - name: โฌ†๏ธ Upload artifact - uses: https://code.forgejo.org/forgejo/upload-artifact@v4 - with: - name: ${{ matrix.binary_name }}${{ matrix.ext }} - path: artifacts/${{ matrix.binary_name }}${{ matrix.ext }} - if-no-files-found: error \ No newline at end of file diff --git a/.forgejo/workflows/build-release.yml b/.forgejo/workflows/build-release.yml index b34c342..91efadd 100644 --- a/.forgejo/workflows/build-release.yml +++ b/.forgejo/workflows/build-release.yml @@ -4,104 +4,37 @@ on: push: pull_request: types: [opened, synchronize, reopened] + jobs: - setup: - name: ๐Ÿ”ง Setup Environment - runs-on: ubuntu-latest - outputs: - cache-hit: ${{ steps.cache-tools.outputs.cache-hit }} - steps: - - name: ๐Ÿ“ฅ Checkout source - uses: https://github.com/actions/checkout@v4 - - - name: ๐Ÿ—„๏ธ Cache tools - uses: https://github.com/actions/cache@v4 - id: cache-tools - with: - path: | - ~/.cargo/bin - /tmp/zig - key: cargo-tools-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - cargo-tools- - - - name: ๐Ÿฆ€ Install Rust toolchain - if: steps.cache-tools.outputs.cache-hit != 'true' - uses: https://github.com/actions-rs/toolchain@v1 - with: - toolchain: stable - components: rust-src - override: true - - - name: ๐Ÿ“ฆ Install Build Tools - if: steps.cache-tools.outputs.cache-hit != 'true' - run: | - mkdir -p /tmp/zig - cd /tmp/zig - curl -Lo zig-linux-x86_64.tar.xz https://ziglang.org/builds/zig-linux-x86_64-0.15.0-dev.377+f01833e03.tar.xz - tar -Jxf zig-linux-x86_64.tar.xz -C /tmp/zig --strip-components=1 - cargo install cargo-zigbuild cargo-xwin --force - cargo-test: name: ๐Ÿงช Run Cargo Tests - needs: setup - runs-on: ubuntu-latest + runs-on: nixos-latest steps: - - name: ๐Ÿ“ฅ Checkout source uses: https://github.com/actions/checkout@v4 - - name: ๐Ÿ“ฆ fetch Git LFS files + - name: ๐Ÿš€ Setup & Run tests run: | - apt update - apt install -y git-lfs - git-lfs fetch --all + nix-shell --run " + git-lfs fetch git-lfs pull - - - name: ๐Ÿ—„๏ธ Restore Cargo cache - uses: https://github.com/actions/cache@v4 - id: restore-cargo-cache - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - cargo- - - - name: ๐Ÿฆ€ Install Rust toolchain - 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 + cargo test --release --all + " build: name: ๐Ÿ—๏ธ Build ${{ matrix.target }} - needs: [setup, cargo-test] - runs-on: ubuntu-latest + needs: [cargo-test] + runs-on: nixos-latest strategy: fail-fast: false matrix: target: - x86_64-unknown-linux-gnu - - aarch64-unknown-linux-gnu - x86_64-pc-windows-msvc + - x86_64-apple-darwin + - aarch64-unknown-linux-gnu - aarch64-pc-windows-msvc - - universal2-apple-darwin + - aarch64-apple-darwin include: - target: x86_64-unknown-linux-gnu binary_name: zenyx-x86_64-linux @@ -116,82 +49,45 @@ jobs: - target: x86_64-pc-windows-msvc binary_name: zenyx-x86_64-windows ext: ".exe" - command: xwin - args: build --target x86_64-pc-windows-msvc --release - - target: aarch64-pc-windows-msvc + command: xwin build + args: --target x86_64-pc-windows-msvc --release + - target: aarch64-pc-windows-msvc binary_name: zenyx-aarch64-windows ext: ".exe" - command: xwin - args: build --target aarch64-pc-windows-msvc --release - - target: universal2-apple-darwin - binary_name: zenyx-universal-macos + command: xwin build + args: --target aarch64-pc-windows-msvc --release + - target: x86_64-apple-darwin + binary_name: zenyx-x86_64-macos ext: "" command: zigbuild - args: --target universal2-apple-darwin --release + args: --target x86_64-apple-darwin --release + - target: aarch64-apple-darwin + binary_name: zenyx-aarch64-macos + ext: "" + command: zigbuild + args: --target aarch64-apple-darwin --release steps: - name: ๐Ÿ“ฅ Checkout source uses: https://github.com/actions/checkout@v4 - - - name: ๐Ÿ“ฆ fetch Git LFS files + + - name: ๐Ÿš€ Install Target & Build release binary run: | - apt update - apt install -y git-lfs + nix-shell --run " git-lfs fetch --all git-lfs pull - - - name: ๐Ÿ—„๏ธ Restore tool cache - uses: https://github.com/actions/cache@v4 - id: restore-tools-cache - with: - path: | - ~/.cargo/bin - /tmp/zig - key: cargo-tools-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - cargo-tools- - - - - name: ๐Ÿ“ Add Zig to PATH - run: echo "/tmp/zig" >> $GITHUB_PATH - - - name: ๐ŸŽฏ Install Rust target - uses: https://github.com/actions-rs/toolchain@v1 - with: - toolchain: stable - target: ${{ matrix.target }} - override: true - - - name: ๐Ÿ—„๏ธ Restore Cargo cache - uses: https://github.com/actions/cache@v4 - id: restore-cargo-cache - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - cargo- - - name: ๐ŸŒ‹ Install Vulkan tools - run: | - apt update - apt install -y vulkan-tools glslc - - - name: ๐Ÿš€ Build release binary - uses: https://github.com/actions-rs/cargo@v1 - with: - command: ${{ matrix.command }} - args: ${{ matrix.args }} + cargo ${{ matrix.command }} ${{ matrix.args }} + " - name: ๐Ÿ“ฆ Package artifact run: | mkdir -p artifacts - cp target/${{ matrix.target }}/release/zenyx${{ matrix.ext }} artifacts/${{ matrix.binary_name }} - + cp target/${{ matrix.target }}/release/zenyx${{ matrix.ext }} artifacts/${{ matrix.binary_name }}${{ matrix.ext }} + - name: โฌ†๏ธ Upload artifact uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: - name: ${{ matrix.binary_name }}${{ matrix.ext }} + name: ${{ matrix.binary_name }}${{ matrix.ext }}.zip path: artifacts/${{ matrix.binary_name }}${{ matrix.ext }} + compression-level: 9 if-no-files-found: error \ No newline at end of file