Merge pull request #24 from nix-community/revamped-ci

Revamp CI
This commit is contained in:
Jörg Thalheim 2022-01-08 09:23:47 +00:00 committed by GitHub
commit 36c0308a42
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 56 additions and 15 deletions

45
.github/workflows/flake-check.yml vendored Normal file
View file

@ -0,0 +1,45 @@
name: "Flake checks"
on:
pull_request:
push:
branches:
- main
jobs:
flake-checks:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v2.4.0
with:
# Nix Flakes doesn't work on shallow clones
fetch-depth: 0
- uses: cachix/install-nix-action@v16
with:
nix_path: nixpkgs=channel:nixos-unstable
- id: set-matrix
run: |
set -euo pipefail
matrix="$(nix flake show --json | jq '.checks."x86_64-linux" | keys' | jq -rcM '{attr: ., os: ["ubuntu-latest", "macos-latest"]}')"
echo "::set-output name=matrix::$matrix"
builds:
needs: flake-checks
runs-on: ${{ matrix.os }}
strategy:
matrix: ${{fromJSON(needs.flake-checks.outputs.matrix)}}
steps:
- uses: actions/checkout@v2.4.0
with:
# Nix Flakes doesn't work on shallow clones
fetch-depth: 0
- uses: cachix/install-nix-action@v16
with:
nix_path: nixpkgs=channel:nixos-unstable
- run: |
set -euo pipefail
system=$(nix-instantiate --eval --expr builtins.currentSystem | jq -r)
nix build -L .#checks.$system.${{ matrix.attr }}

View file

@ -1,11 +1,9 @@
name: "Test"
name: "Development workflow - nix-shell"
on:
pull_request:
push:
branches:
- main
schedule:
- cron: '51 2 * * *'
jobs:
tests:
strategy:
@ -15,5 +13,9 @@ jobs:
steps:
- uses: actions/checkout@v2
- uses: cachix/install-nix-action@v16
- name: build
run: NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixpkgs-unstable.tar.gz nix-build --expr '(import <nixpkgs> { }).callPackage ./. { }'
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Build
run: nix-shell --run 'meson build && cd build && ninja'
- name: Run tests
run: nix-shell --run 'pytest ./tests'

View file

@ -1,11 +1,9 @@
name: "Flake test"
name: "Development workflow - flakes"
on:
pull_request:
push:
branches:
- main
schedule:
- cron: '51 2 * * *'
jobs:
tests:
strategy:
@ -18,11 +16,7 @@ jobs:
# Nix Flakes doesn't work on shallow clones
fetch-depth: 0
- uses: cachix/install-nix-action@v16
- name: List flake structure
run: nix flake show
- name: Build
run: nix build --out-link result
run: nix develop -c bash -c 'meson build && cd build && ninja'
- name: Run tests
run: |
nix develop -c install -D ./result/bin/nix-eval-jobs ./build/src/nix-eval-jobs
nix develop -c pytest ./tests
run: nix develop -c pytest ./tests

View file

@ -2,7 +2,7 @@ name: update-flake-lock
on:
workflow_dispatch: # allows manual triggering
schedule:
- cron: '0 0 * * 0' # runs weekly on Sunday at 00:00
- cron: '0 0 * * 1,4' # Run twice a week
jobs:
lockfile: