# SPDX-FileCopyrightText: 2024 Tom Hubrecht # # SPDX-License-Identifier: EUPL-1.2 { lib, nix-actions }: let inherit (lib) attrNames genAttrs; nodes = attrNames (import ../meta lib).nodes; in { name = "Build all the nodes"; on = { pull_request.branches = [ "main" ]; push.branches = [ "main" ]; }; jobs = genAttrs nodes (node: { runs-on = "nix"; steps = [ { uses = "actions/checkout@v3"; } { name = "Eval ${node}"; run = nix-actions.lib.nix-shell { script = '' DRV="$(instantiate-node)" echo "DRV=$DRV" >> $GITHUB_ENV ''; shell = "eval-nodes"; }; env.BUILD_NODE = node; } { name = "Build ${node}"; run = # bash '' STORE_PATH="$(nix-store --realise "$DRV")" echo "STORE_PATH=$STORE_PATH" >> $GITHUB_ENV ''; } { name = "Cache ${node}"; run = nix-actions.lib.nix-shell { script = '' push-to-cache "$STORE_PATH" ''; shell = "eval-nodes"; }; env = { STORE_ENDPOINT = "https://tvix-store.dgnum.eu/infra-signing/"; STORE_USER = "admin"; STORE_PASSWORD = nix-actions.lib.secret "STORE_PASSWORD"; }; } ]; }); }