Skip to content

Commit

Permalink
speed up ci by splitting off eval and build
Browse files Browse the repository at this point in the history
also improve error reporting e.g. printing out what actually failed to
build.
  • Loading branch information
Mic92 committed Dec 14, 2024
1 parent 7bd8ece commit 0558685
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 20 deletions.
37 changes: 17 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@ on:
permissions: read-all

jobs:
eval:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v30
- if: matrix.os == 'ubuntu-latest'
run: |
(
while sleep 10; do
free -h
done
) &
- run: nix --experimental-features 'nix-command flakes' flake show --all-systems --json

tests:
needs: [check_secrets]
Expand All @@ -33,25 +48,7 @@ jobs:
name: '${{ env.CACHIX_NAME }}'
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- if: matrix.os == 'ubuntu-latest'
run: |
free -h
swapon --show
swap=$(swapon --show --noheadings | head -n 1 | awk '{print $1}')
echo "Found swap: $swap"
sudo swapoff $swap
# resize it (fallocate)
sudo fallocate -l 10G $swap
sudo mkswap $swap
sudo swapon $swap
free -h
(
while sleep 60; do
free -h
done
) &
- run: nix --experimental-features 'nix-command flakes' flake check -L
- run: nix --experimental-features 'nix-command flakes' flake show --all-systems --json
- run: scripts/build-checks

# Steps to test CI automation in your own fork.
# Cachix:
Expand Down Expand Up @@ -94,7 +91,7 @@ jobs:
- uses: cachix/install-nix-action@v30
with:
install_url: https://releases.nixos.org/nix/nix-2.20.3/install
- uses: cachix/cachix-action@v15
- uses: cachix/cachix-action@v16
with:
name: '${{ env.CACHIX_NAME }}'
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
Expand Down
6 changes: 6 additions & 0 deletions scripts/build-checks
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail
system=$(nix eval --raw --impure --expr builtins.currentSystem)
nix eval --json ".#checks.$system" --apply builtins.attrNames | \
jq -r '.[]' | \
xargs -P0 -I '{}' sh -c "nix build -L .#checks.$system.{} || { echo 'FAILED: \033[0;31mnix build -L .#checks.$system.{}\\033[0m'; kill 0; }"

0 comments on commit 0558685

Please sign in to comment.