diff --git a/flake.nix b/flake.nix index 3219289..2d28fd3 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,9 @@ outputs = { nixpkgs, self }: { nixosModules = { laravel = import ./nixos/modules/web-apps/laravel.nix; - vagrant = { ... }: { imports = [ ./nixos/modules/virtualisation/vagrant.nix ]; }; + vagrant = { ... }: { + imports = [ ./nixos/modules/virtualisation/vagrant.nix ]; + }; }; templates = { @@ -14,38 +16,41 @@ }; nodejs = { path = ./templates/nodejs; - description = "A simple boilerplate for running Node.js apps in a nix shell."; + description = + "A simple boilerplate for running Node.js apps in a nix shell."; }; php = { path = ./templates/php; - description = "A simple boilerplate for running PHP apps in a nix shell."; + description = + "A simple boilerplate for running PHP apps in a nix shell."; }; }; - checks."x86_64-linux".vagrant = let - pkgs = nixpkgs.legacyPackages."x86_64-linux"; - in pkgs.nixosTest { - name = "vagrant-box-test"; - nodes.machine = { config, pkgs, ... }: { - imports = [ self.nixosModules.vagrant ]; - config = { - assertions = [ - { - assertion = config.services.laravel.enable == false; - message = "Laravel should be disabled"; - } - { - assertion = config.services.laravel.bashAliases.enable == config.services.laravel.enable; - message = "Bash aliases should be enabled"; - } - ]; + checks."x86_64-linux".vagrant = + let pkgs = nixpkgs.legacyPackages."x86_64-linux"; + in pkgs.nixosTest { + name = "vagrant-box-test"; + nodes.machine = { config, pkgs, ... }: { + imports = [ self.nixosModules.vagrant ]; + config = { + assertions = [ + { + assertion = config.services.laravel.enable == false; + message = "Laravel should be disabled"; + } + { + assertion = config.services.laravel.bashAliases.enable + == config.services.laravel.enable; + message = "Bash aliases should be enabled"; + } + ]; + }; }; - }; - testScript = '' - # run hello on machine and check for output - # test is a simple python script - machine.succeed('cd /vagrant && php artisan') - ''; - }; + testScript = '' + # run hello on machine and check for output + # test is a simple python script + machine.succeed('cd /vagrant && php artisan') + ''; + }; }; } diff --git a/templates/php/flake.nix b/templates/php/flake.nix index 0a5c2c5..8fba636 100644 --- a/templates/php/flake.nix +++ b/templates/php/flake.nix @@ -134,6 +134,24 @@ vscode-langservers-extracted ]; }; + + checks = { + phpstan = pkgs.stdenvNoCC.mkDerivation { + name = "phpstan-check"; + dontBuild = true; + doCheck = true; + src = ./.; + buildInputs = [ php php.packages.phpstan ]; + + checkPhase = '' + mkdir $out + cp -r $src/* $out + cd $out + php install.php + phpstan analyze --ansi # --memory-limit=256M + ''; + }; + }; }; }; }