mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-23 01:08:43 +02:00
ci/check: init
Adds a "check" CI workflow to replace buildbot. Uses nix-community/nix-github-actions to generate a job matrix as a `githubActions.matrix` flake output. This allows more customisation than simply building _all_ `checks`.
This commit is contained in:
parent
2f610f9754
commit
f57d629bb0
5 changed files with 107 additions and 0 deletions
74
.github/workflows/check.yml
vendored
Normal file
74
.github/workflows/check.yml
vendored
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
name: Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch: # can be triggered manually
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- opened
|
||||||
|
- reopened
|
||||||
|
- synchronize
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- update/*
|
||||||
|
paths-ignore:
|
||||||
|
- "LICENSE"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
flake-checker:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install nix
|
||||||
|
uses: cachix/install-nix-action@v31
|
||||||
|
- name: Run flake checker
|
||||||
|
uses: DeterminateSystems/flake-checker-action@main
|
||||||
|
|
||||||
|
build-matrix:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install nix
|
||||||
|
uses: cachix/install-nix-action@v31
|
||||||
|
- name: Generate Nix Matrix
|
||||||
|
id: set-matrix
|
||||||
|
run: |
|
||||||
|
set -Eeu
|
||||||
|
matrix="$(nix eval --json .#githubActions.matrix)"
|
||||||
|
echo "matrix=$matrix" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
build:
|
||||||
|
name: ${{ matrix.name }} (${{ matrix.system }})
|
||||||
|
needs:
|
||||||
|
- build-matrix
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix: ${{ fromJSON(needs.build-matrix.outputs.matrix) }}
|
||||||
|
steps:
|
||||||
|
- name: Free disk space
|
||||||
|
uses: wimpysworld/nothing-but-nix@main
|
||||||
|
with:
|
||||||
|
# Options: holster, carve, cleave (default), rampage
|
||||||
|
hatchet-protocol: rampage
|
||||||
|
root-safe-haven: "1024" # Default 2048MB
|
||||||
|
mnt-safe-haven: "512" # Default 1024MB
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install nix
|
||||||
|
uses: cachix/install-nix-action@v31
|
||||||
|
- name: Setup nix cache
|
||||||
|
uses: cachix/cachix-action@v16
|
||||||
|
with:
|
||||||
|
name: nix-community
|
||||||
|
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||||
|
- name: Build ${{ matrix.attr }}
|
||||||
|
env:
|
||||||
|
attr: ${{ matrix.attr }}
|
||||||
|
run: |
|
||||||
|
nix build ".#$attr" \
|
||||||
|
--abort-on-warn \
|
||||||
|
--print-build-logs \
|
||||||
|
--log-format raw
|
|
@ -34,6 +34,7 @@
|
||||||
checks = "dev";
|
checks = "dev";
|
||||||
devShells = "dev";
|
devShells = "dev";
|
||||||
formatter = "dev";
|
formatter = "dev";
|
||||||
|
githubActions = "dev";
|
||||||
};
|
};
|
||||||
|
|
||||||
# For any output attrs normally defined by the root flake configuration,
|
# For any output attrs normally defined by the root flake configuration,
|
||||||
|
|
21
flake/dev/flake.lock
generated
21
flake/dev/flake.lock
generated
|
@ -135,6 +135,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-github-actions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"dev-nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1737420293,
|
||||||
|
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"dev-nixpkgs": "dev-nixpkgs",
|
"dev-nixpkgs": "dev-nixpkgs",
|
||||||
|
@ -143,6 +163,7 @@
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nix-github-actions": "nix-github-actions",
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -32,6 +32,11 @@
|
||||||
inputs.nixpkgs.follows = "dev-nixpkgs";
|
inputs.nixpkgs.follows = "dev-nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nix-github-actions = {
|
||||||
|
url = "github:nix-community/nix-github-actions";
|
||||||
|
inputs.nixpkgs.follows = "dev-nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
treefmt-nix = {
|
treefmt-nix = {
|
||||||
url = "github:numtide/treefmt-nix";
|
url = "github:numtide/treefmt-nix";
|
||||||
inputs.nixpkgs.follows = "dev-nixpkgs";
|
inputs.nixpkgs.follows = "dev-nixpkgs";
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
self,
|
self,
|
||||||
|
inputs,
|
||||||
helpers,
|
helpers,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
@ -11,4 +12,9 @@
|
||||||
inherit helpers self;
|
inherit helpers self;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Output a build matrix for CI
|
||||||
|
flake.githubActions = inputs.nix-github-actions.lib.mkGithubMatrix {
|
||||||
|
inherit (self) checks;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue