build: Add automatic lint and build check

Signed-off-by: Christoph Heiss <christoph@c8h4.io>
This commit is contained in:
Christoph Heiss 2023-04-02 17:50:41 +02:00
parent 04a42d81ad
commit 9ee412838e
Signed by: c8h4
GPG key ID: 6817E9C75C0785D7
3 changed files with 32 additions and 4 deletions

17
.build.yml Normal file
View file

@ -0,0 +1,17 @@
---
image: nixos/unstable
packages:
- nixos.gnumake
sources:
- https://git.sr.ht/~c8h4/nixos-config
tasks:
- setup: |
mkdir -p .config/nix
echo 'experimental-features = flakes nix-command' >.config/nix/nix.conf
for f in $(find nixos-config/secrets -type f -name '*.nix'); do echo '{ }' > $f; done
- lint: |
cd nixos-config
make lint
- build: |
cd nixos-config
make build-all

View file

@ -8,7 +8,7 @@ indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.nix]
[*.{nix,yml}]
indent_size = 2
[*.md]

View file

@ -1,15 +1,26 @@
export MAKEFLAGS :=
DEADNIX := nix run nixpkgs\#deadnix --
MORPH := nix run nixpkgs\#morph --
NIXFMT := nix run nixpkgs\#nixfmt --
STATIX := nix run nixpkgs\#statix --
.PHONY: format
.PHONY: format lint build-all upload-secrets-all build deploy deploy-full upload-secrets
all:
@echo "no default action, use one of 'format', 'build', 'deploy' or 'upload-secrets'" 2>&1
@echo "no default action, use one of 'format', 'lint', 'build', 'deploy' or 'upload-secrets'" 2>&1
@exit 1
format:
nix-shell -p nixfmt --run "find . -type f -name '*.nix' -exec nixfmt {} +"
find . -type f -name '*.nix' -exec $(NIXFMT) {} +
lint:
$(DEADNIX) --fail
$(STATIX) check
find . -type f -name '*.nix' -exec $(NIXFMT) --check {} +
build-all:
for m in name; do $(MAKE) build M=$$m; done
upload-secrets-all:
$(MORPH) upload-secrets --passwd ./default.nix