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 - x86_64-pc-windows-msvc - x86_64-apple-darwin - aarch64-unknown-linux-gnu - aarch64-pc-windows-msvc - aarch64-apple-darwin 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 - target: x86_64-apple-darwin binary_name: zenyx-x86_64-macos ext: "" command: zigbuild 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: ๐Ÿš€ 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 }}.zip path: artifacts/${{ matrix.binary_name }}${{ matrix.ext }} compression-level: 9 if-no-files-found: error