Skip to content
This repository was archived by the owner on Apr 28, 2026. It is now read-only.

Build

Build #996

Workflow file for this run

name: Build
on:
merge_group:
pull_request:
concurrency:
# Special care needs to be taken here to prevent cancelled runs in the GitHub
# merge queue.
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
checks:
name: Checks, Build, Lints
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: cachix/install-nix-action@v31
# We restore Nix evaluation and Nix tarball cache, speeding up the CI.
# This does not cover any Nix artifacts from the Nix store.
- name: Restore Nix cache
uses: actions/cache@v5
with:
path: ~/.cache/nix
key: nix-cache-${{ github.job }}
# Dedicated step to separate all the
# "copying path '/nix/store/...' from 'https://cache.nixos.org'."
# messages from the actual build output.
- name: Prepare Nix Store
run: nix develop --command bash -c "nix --version"
# Checking Nix formatting is not a Nix flake check, as doing so would
# introduce an ugly recursive Nix dependency.
- name: Check Nix format
run: nix fmt -- --ci
- name: Check Deadnix
run: nix build -L .#checks.x86_64-linux.deadnix
- name: Check Python Formatting
run: nix build -L .#checks.x86_64-linux.pythonFormat
- name: Check Python Lints
run: nix build -L .#checks.x86_64-linux.pythonLint
- name: Check Python Types
run: nix build -L .#checks.x86_64-linux.pythonTypes
- name: Check Spelling
run: nix build -L .#checks.x86_64-linux.typos
# Run all in case we forgot to add a fine-grained job.
- name: Check All
run: |
nix build -L .#checks.x86_64-linux.all
# Run all other flake-wide checks
# TODO add once we have quicker CI runners
# nix flake check
- name: Eval all test suites
run: nix eval -L .#tests.x86_64-linux.all