diff --git a/.forgejo/workflows/check.yml b/.forgejo/workflows/check.yml new file mode 100644 index 0000000..259971b --- /dev/null +++ b/.forgejo/workflows/check.yml @@ -0,0 +1,20 @@ +on: [push] +jobs: + check: + runs-on: nixos + steps: + - uses: https://code.forgejo.org/actions/checkout@v4 + - run: nix --version + - run: nix flake update systems + - run: nix flake check --keep-going + build: + runs-on: nixos + strategy: + matrix: + machine: + - vm + steps: + - uses: https://code.forgejo.org/actions/checkout@v4 + - run: nix --version + - run: nix flake update systems + - run: nix build --print-build-logs '.#nixosConfigurations.${{ matrix.machine }}.config.system.build.toplevel' diff --git a/flake.nix b/flake.nix index 54c1226..6769b60 100644 --- a/flake.nix +++ b/flake.nix @@ -112,25 +112,9 @@ pkgs = import nixpkgs {inherit system overlays;}; module = ./nvim/nixvim.nix; }; - formatting = pkgs.stdenvNoCC.mkDerivation { - name = "nix-formatting-check"; - dontUnpack = true; - dontBuild = true; - doCheck = true; - checkPhase = "${pkgs.lib.getExe self.formatter.${system}} --check --quiet ${src}"; - installPhase = "mkdir $out"; - }; - typos = let - typos = pkgs.lib.getExe pkgs.typos; - in - pkgs.stdenvNoCC.mkDerivation { - name = "typos-check"; - dontUnpack = true; - dontBuild = true; - doCheck = true; - checkPhase = "${typos} --color=always ${src}"; - installPhase = "mkdir $out"; - }; + fmt = pkgs.callPackage ./fmt.nix {inherit src;}; + lint = pkgs.callPackage ./lint.nix {inherit src;}; + typos = pkgs.callPackage ./lint.nix {inherit src;}; } ); diff --git a/fmt.nix b/fmt.nix new file mode 100644 index 0000000..84b7369 --- /dev/null +++ b/fmt.nix @@ -0,0 +1,12 @@ +{ + lib, + stdenvNoCC, + alejandra, + src, +}: +stdenvNoCC.mkDerivation { + name = "fmt-src"; + inherit src; + buildPhase = "${lib.getExe alejandra} --check ."; + installPhase = "mkdir $out"; +} diff --git a/lint.nix b/lint.nix new file mode 100644 index 0000000..5c80e23 --- /dev/null +++ b/lint.nix @@ -0,0 +1,12 @@ +{ + lib, + stdenvNoCC, + statix, + src, +}: +stdenvNoCC.mkDerivation { + name = "lint-src"; + inherit src; + buildPhase = "${lib.getExe statix} check ."; + installPhase = "mkdir $out"; +} diff --git a/typos.nix b/typos.nix new file mode 100644 index 0000000..9a02768 --- /dev/null +++ b/typos.nix @@ -0,0 +1,12 @@ +{ + lib, + stdenvNoCC, + typos, + src, +}: +stdenvNoCC.mkDerivation { + name = "typos-src"; + inherit src; + buildPhase = "${lib.getExe typos} ."; + installPhase = "mkdir $out"; +}