Skip to content

CI

CI #407

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches:
- master
schedule:
# Once a week on saturday
- cron: '7 13 * * 6'
workflow_dispatch:
env:
NUR_REPO: shamilton
CACHIX_CACHE: scott-hamilton
NIXPKGS_ALLOW_BROKEN: 0
CACHIX_SIGNING_KEY: ${{ secrets.CACHIX_SIGNING_KEY }}
DEFAULT_NIX_CHANNEL: nixos-24.05
# Allows you to run this workflow manually from the Actions tab
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
name: ${{ matrix.channel-branch }}
strategy:
matrix:
channel-branch:
- master
- nixpkgs-unstable
- nixos-unstable
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
ref: master
- uses: cachix/install-nix-action@v20
with:
extra_nix_config: "system-features = nixos-test benchmark big-parallel kvm"
- uses: cachix/cachix-action@v12
with:
name: '${{ env.CACHIX_CACHE }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
# Runs a set of commands using the runners shell
- name: Nix Version
run: nix --version
- name: Test Build
run: |
if [ "${{ matrix.channel-branch }}" = "master" ]; then
export NIX_PATH=nixpkgs=channel:${{ env.DEFAULT_NIX_CHANNEL }}
else
export NIX_PATH=nixpkgs=channel:${{ matrix.channel-branch }}
fi
nix-shell -p nix-eval-jobs --command 'CHANNEL_BRANCH="${{ matrix.channel-branch }}" ./scripts/build-ci.sh'
# if [ "${{ matrix.channel-branch }}" = "nixpkgs-unstable" ]; then
# cachix watch-exec "${CACHIX_CACHE}" -- nix-build --argstr nixosVersion "${{ matrix.channel-branch }}" all-tests.nix --show-trace
# fi
- name: Evaluations
run: |
if [ "${{ matrix.channel-branch }}" = "master" ]; then
export NIX_PATH=nixpkgs=channel:${{ env.DEFAULT_NIX_CHANNEL }}
else
export NIX_PATH=nixpkgs=channel:${{ matrix.channel-branch }}
fi
nix eval --argstr nixosVersion "${{ matrix.channel-branch }}" -f default.nix 'lib' --show-trace
nix eval --argstr nixosVersion "${{ matrix.channel-branch }}" -f default.nix 'modules' --show-trace
nix eval --argstr nixosVersion "${{ matrix.channel-branch }}" -f default.nix 'overlays' --show-trace
- name: Push
run: |
curl -XPOST "https://nur-update.herokuapp.com/update?repo=${NUR_REPO}"