summaryrefslogtreecommitdiff
path: root/.github/workflows/example.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/example.yaml')
-rw-r--r--.github/workflows/example.yaml55
1 files changed, 55 insertions, 0 deletions
diff --git a/.github/workflows/example.yaml b/.github/workflows/example.yaml
new file mode 100644
index 0000000..5c376c1
--- /dev/null
+++ b/.github/workflows/example.yaml
@@ -0,0 +1,55 @@
+name: Example
+
+on:
+ workflow_dispatch:
+
+jobs:
+ eval:
+ runs-on: ubuntu-latest
+
+ outputs:
+ matrix: ${{ steps.generate.outputs.matrix }}
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: install nix
+ uses: nixbuild/nix-quick-install-action@v26
+
+ - name: generate matrix
+ id: generate
+ run: |
+ set -Eeu
+ echo "matrix=$(nix eval --show-trace --json .#githubWorkflow.matrix)" >> "$GITHUB_OUTPUT"
+
+ build:
+ needs: eval
+
+ strategy:
+ matrix: ${{ fromJSON(needs.eval.outputs.matrix) }}
+
+ runs-on: ${{ matrix.os }}
+
+ name: build (${{matrix.attr}})
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: setup qemu
+ if: matrix.arch == 'aarch64'
+ run: |
+ sudo apt update -y
+ sudo apt install -y qemu-user-static
+
+ - name: install nix
+ if: matrix.arch != 'aarch64'
+ uses: nixbuild/nix-quick-install-action@v26
+
+ - name: install nix (with aarch64)
+ if: matrix.arch == 'aarch64'
+ uses: nixbuild/nix-quick-install-action@v26
+ with:
+ nix_conf: "extra-platforms = aarch64-linux arm-linux"
+
+ - name: build ${{ matrix.attr }}
+ run: nix build -L --fallback .#${{ matrix.attr }}