diff --git a/.github/workflows/rusk_build.yml b/.github/workflows/rusk_build.yml index 3a2a6b16e..7d21fdd5b 100644 --- a/.github/workflows/rusk_build.yml +++ b/.github/workflows/rusk_build.yml @@ -7,6 +7,14 @@ on: description: "Git branch, ref, or SHA to checkout" required: true default: "master" + runner: + description: "Choose runner target to build against (JSON array)" + required: true + default: "[\"ubuntu-24.04\", \"macos-15\", \"arm-linux\"]" + features: + description: "Choose features to build (JSON array)" + required: true + default: "[\"default\", \"archive\"]" jobs: build_and_publish: @@ -14,20 +22,17 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-24.04, macos-15, arm-linux] - compiler: [cargo] - features: [default, archive] - include: - - os: ubuntu-24.04 - target: linux-x64 - - os: macos-15 - target: macos-arm64 - flags: --target=aarch64-apple-darwin - - os: arm-linux - target: linux-arm64 - flags: --target=aarch64-unknown-linux-gnu + include: ${{ fromJson('[ + {"os": "ubuntu-24.04", "target": "linux-x64", "flags": ""}, + {"os": "macos-15", "target": "macos-arm64", "flags": "--target=aarch64-apple-darwin"}, + {"os": "arm-linux", "target": "linux-arm64", "flags": "--target=aarch64-unknown-linux-gnu"} + ]') | filter(item => contains(fromJson(github.event.inputs.operating_system), item.os)) | map(item => fromJson(github.event.inputs.features) | map(features => {"os": item.os, "features": features, "target": item.target, "flags": item.flags})) | flatten }} + fail-fast: false steps: + - name: Debug Build Flags + run: echo "Build flags: ${{ matrix.flags }}" + - name: Checkout Repository uses: actions/checkout@v4 with: