-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathflake.nix
More file actions
79 lines (72 loc) · 2.21 KB
/
flake.nix
File metadata and controls
79 lines (72 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
{
description = "ParkHub PHP - Laravel 13 plus React 19 toolchain";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
php = pkgs.php84;
composer = pkgs.php84Packages.composer;
nodejs = pkgs.nodejs_22;
in
{
devShells.default = pkgs.mkShell {
packages = with pkgs; [
php
composer
nodejs
git
jq
curl
sqlite
unzip
zip
pkg-config
openssl
];
env = {
CI = "true";
DB_CONNECTION = "sqlite";
DB_DATABASE = "database/database.sqlite";
};
shellHook = ''
echo "ParkHub PHP dev shell: PHP $(php -r 'echo PHP_VERSION;'), Node $(node --version)"
'';
};
checks = {
toolchain-contract = pkgs.runCommand "parkhub-php-toolchain-contract"
{
nativeBuildInputs = [
php
composer
nodejs
pkgs.jq
pkgs.gnugrep
];
}
''
php -r 'exit(PHP_MAJOR_VERSION === 8 && PHP_MINOR_VERSION === 4 ? 0 : 1);'
composer --version >/dev/null
node --version | grep -Eq '^v22\.'
npm --version >/dev/null
jq -e '.require.php == "^8.4"' ${./composer.json} >/dev/null
jq -e '.engines.node == ">=22.12.0"' ${./parkhub-web/package.json} >/dev/null
touch "$out"
'';
garnix-contract = pkgs.runCommand "parkhub-php-garnix-contract"
{
nativeBuildInputs = [ pkgs.gnugrep ];
}
''
test -f ${./garnix.yaml}
grep -q 'checks.x86_64-linux.*' ${./garnix.yaml}
grep -q 'devShells.x86_64-linux.default' ${./garnix.yaml}
touch "$out"
'';
};
formatter = pkgs.nixpkgs-fmt;
});
}