34 lines
1.2 KiB
YAML
34 lines
1.2 KiB
YAML
name: Check Flake
|
|
|
|
on: [push]
|
|
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
PATH: /run/current-system/sw/bin/
|
|
|
|
jobs:
|
|
check-flake:
|
|
runs-on: nixos
|
|
steps:
|
|
- name: Checkout the repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Check Flake
|
|
run: nix flake check --all-systems --print-build-logs --log-format raw --show-trace
|
|
|
|
- name: Push to cache
|
|
env:
|
|
XDG_CONFIG_HOME: ${{ runner.temp }}/.config
|
|
run: |
|
|
attic login local "${{ vars.ATTIC_ENDPOINT }}" "${{ secrets.ATTIC_TOKEN }}"
|
|
# Get all system toplevel store paths
|
|
toplevels=$(nix eval .#nixosConfigurations --apply 'cs: map (n: "${cs.${n}.config.system.build.toplevel}") (builtins.attrNames cs)' --json | jq -r '.[]')
|
|
# Expand to full closures, deduplicate, and filter out paths already
|
|
# signed by cache.nixos.org — only our custom builds need caching
|
|
echo "$toplevels" \
|
|
| xargs nix path-info -r --json \
|
|
| jq -r '[.[] | select((.signatures // []) | all(startswith("cache.nixos.org") | not)) | .path] | unique[]' \
|
|
| xargs attic push local:nixos 1>/dev/null
|