diff --git a/.forgejo/workflows/build-release.yml b/.forgejo/workflows/build-release.yml index e3d7f9e..a87f305 100644 --- a/.forgejo/workflows/build-release.yml +++ b/.forgejo/workflows/build-release.yml @@ -19,8 +19,9 @@ jobs: id: cache-tools with: path: | - ~/.cargo/bin - /tmp/zig + ~/.cargo/registry + ~/.cargo/git + target key: tools-v1-${{ hashFiles('**/Cargo.lock') }} - name: 🦀 Install Rust toolchain @@ -30,14 +31,6 @@ jobs: components: rust-src override: true - - name: 📦 Install Zig and cargo-zigbuild - if: steps.cache-tools.outputs.cache-hit != 'true' - run: | - mkdir -p /tmp/zig - curl -L https://ziglang.org/builds/zig-linux-x86_64-0.11.0.tar.xz | tar -xJ -C /tmp/zig --strip-components=1 - curl -L https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash - cargo binstall -y cargo-zigbuild - build: name: 🏗️ Build ${{ matrix.target }} needs: setup @@ -45,56 +38,46 @@ jobs: strategy: fail-fast: false matrix: - target: - - x86_64-unknown-linux-gnu - - aarch64-unknown-linux-gnu - - x86_64-pc-windows-msvc include: - target: x86_64-unknown-linux-gnu + image: messense/cargo-zigbuild:latest binary_name: zenyx-x86_64-linux ext: "" + - target: aarch64-unknown-linux-gnu + image: messense/cargo-zigbuild:latest binary_name: zenyx-aarch64-linux ext: "" + - target: x86_64-pc-windows-msvc + image: messense/cargo-xwin:latest binary_name: zenyx-x86_64-windows-msvc.exe ext: ".exe" + container: ${{ matrix.image }} + steps: - name: 📥 Checkout source uses: https://github.com/actions/checkout@v4 - - name: 🗄️ Restore tool cache - uses: https://github.com/actions/cache@v4 - with: - path: | - ~/.cargo/bin - /tmp/zig - key: tools-v1-${{ hashFiles('**/Cargo.lock') }} - - - 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 with: path: | - ~/.cargo/registry - ~/.cargo/git + /usr/local/cargo/registry + /usr/local/cargo/git target key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} restore-keys: | cargo-${{ matrix.target }}- - name: 🚀 Build release binary - run: cargo zigbuild --target ${{ matrix.target }} --release + run: | + if [[ "${{ matrix.target }}" == *"windows"* ]]; then + cargo xwin build --target ${{ matrix.target }} --release + else + cargo zigbuild --target ${{ matrix.target }} --release + fi - name: 📦 Package artifact run: |