Update configuration files
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
This commit is contained in:
parent
c3113b0eec
commit
08e65f606e
27 changed files with 460 additions and 266 deletions
2
drupal-cms/.gitignore
vendored
2
drupal-cms/.gitignore
vendored
|
|
@ -43,3 +43,5 @@
|
||||||
/web/themes/contrib/
|
/web/themes/contrib/
|
||||||
/web/update.php
|
/web/update.php
|
||||||
/web/web.config
|
/web/web.config
|
||||||
|
|
||||||
|
!/web/sites/default/settings.nix.php
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
|
devshell.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
devshell.url = "github:numtide/devshell";
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
import-tree.url = "github:vic/import-tree";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
process-compose.url = "github:Platonic-Systems/process-compose-flake";
|
process-compose.url = "github:Platonic-Systems/process-compose-flake";
|
||||||
services.url = "github:juspay/services-flake";
|
services.url = "github:juspay/services-flake";
|
||||||
|
|
@ -10,75 +13,6 @@
|
||||||
outputs =
|
outputs =
|
||||||
inputs:
|
inputs:
|
||||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
systems = import inputs.systems;
|
imports = [ (inputs.import-tree ./tools/nix) ];
|
||||||
|
|
||||||
imports = [
|
|
||||||
inputs.process-compose.flakeModule
|
|
||||||
];
|
|
||||||
|
|
||||||
perSystem =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
php = pkgs.php.buildEnv {
|
|
||||||
extraConfig = ''
|
|
||||||
memory_limit = 128M
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
phpPackages = pkgs.phpPackages;
|
|
||||||
|
|
||||||
databasePort = 3306;
|
|
||||||
webPort = 8000;
|
|
||||||
in
|
|
||||||
with lib;
|
|
||||||
{
|
|
||||||
|
|
||||||
process-compose."default" = {
|
|
||||||
imports = [
|
|
||||||
inputs.services.processComposeModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
services = {
|
|
||||||
mysql."mysql1" = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
initialDatabases = [
|
|
||||||
{ name = "drupal_cms"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
settings.mysqld.port = toString databasePort;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
settings.processes = {
|
|
||||||
php = {
|
|
||||||
command = pkgs.writeShellApplication {
|
|
||||||
name = "php-local-server";
|
|
||||||
|
|
||||||
text = "${getExe php} -S 127.0.0.1:${toString webPort} -t web";
|
|
||||||
};
|
|
||||||
|
|
||||||
depends_on."mysql1".condition = "process_healthy";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
|
||||||
inputsFrom = [
|
|
||||||
config.process-compose."default".services.outputs.devShell
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
php
|
|
||||||
phpPackages.composer
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
34
drupal-cms/phpcs.xml.dist
Normal file
34
drupal-cms/phpcs.xml.dist
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ruleset name="drupal-cms">
|
||||||
|
<description>Codestyle ruleset for drupal-cms</description>
|
||||||
|
|
||||||
|
<rule ref="Drupal"/>
|
||||||
|
<rule ref="DrupalPractice"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<arg name="colors"/>
|
||||||
|
<arg value="np"/>
|
||||||
|
|
||||||
|
<file>web/modules/custom</file>
|
||||||
|
|
||||||
|
<rule ref="Drupal">
|
||||||
|
<exclude name="Drupal.Commenting.ClassComment.Missing"/>
|
||||||
|
<exclude name="Drupal.Commenting.DataTypeNamespace.DataTypeNamespace"/>
|
||||||
|
<exclude name="Drupal.Commenting.Deprecated"/>
|
||||||
|
<exclude name="Drupal.Commenting.DocComment.ContentAfterOpen"/>
|
||||||
|
<exclude name="Drupal.Commenting.DocComment.MissingShort"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.IncorrectParamVarName"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.IncorrectTypeHint"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.InvalidReturn"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.Missing"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.MissingParamComment"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.MissingReturnComment"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.ParamTypeSpaces"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.TypeHintMissing"/>
|
||||||
|
<exclude name="Drupal.Commenting.InlineComment.DocBlock"/>
|
||||||
|
<exclude name="Drupal.Commenting.VariableComment.Missing"/>
|
||||||
|
<exclude name="Drupal.NamingConventions.ValidFunctionName.ScopeNotCamelCaps"/>
|
||||||
|
<exclude name="DrupalPractice.Objects.StrictSchemaDisabled.StrictConfigSchema"/>
|
||||||
|
</rule>
|
||||||
|
</ruleset>
|
||||||
5
drupal-cms/phpstan.neon.dist
Normal file
5
drupal-cms/phpstan.neon.dist
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
parameters:
|
||||||
|
level: max
|
||||||
|
|
||||||
|
paths:
|
||||||
|
- web/modules/custom
|
||||||
29
drupal-cms/phpunit.xml.dist
Normal file
29
drupal-cms/phpunit.xml.dist
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<phpunit
|
||||||
|
beStrictAboutChangesToGlobalState="true"
|
||||||
|
beStrictAboutOutputDuringTests="false"
|
||||||
|
beStrictAboutTestsThatDoNotTestAnything="true"
|
||||||
|
bootstrap="web/core/tests/bootstrap.php"
|
||||||
|
colors="true"
|
||||||
|
printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter"
|
||||||
|
>
|
||||||
|
<php>
|
||||||
|
<ini name="error_reporting" value="32767"/>
|
||||||
|
<ini name="memory_limit" value="-1"/>
|
||||||
|
</php>
|
||||||
|
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="functional">
|
||||||
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Functional</directory>
|
||||||
|
</testsuite>
|
||||||
|
|
||||||
|
<testsuite name="kernel">
|
||||||
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Kernel</directory>
|
||||||
|
</testsuite>
|
||||||
|
|
||||||
|
<testsuite name="unit">
|
||||||
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Unit</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
</phpunit>
|
||||||
31
drupal-cms/tools/nix/dev-shells.nix
Normal file
31
drupal-cms/tools/nix/dev-shells.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ inputs.devshell.flakeModule ];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
devshells.default =
|
||||||
|
with pkgs;
|
||||||
|
let
|
||||||
|
php = pkgs.php.buildEnv {
|
||||||
|
extraConfig = ''
|
||||||
|
memory_limit = 128M
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
phpPackages = pkgs.phpPackages;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = [
|
||||||
|
mariadb
|
||||||
|
php
|
||||||
|
phpPackages.composer
|
||||||
|
phpactor
|
||||||
|
pv
|
||||||
|
yamlfmt
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
40
drupal-cms/tools/nix/process-compose.nix
Normal file
40
drupal-cms/tools/nix/process-compose.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ inputs.process-compose.flakeModule ];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
databasePort = 3306;
|
||||||
|
httpPort = 8888;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
process-compose."default" = {
|
||||||
|
imports = [
|
||||||
|
inputs.services.processComposeModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
mysql."mysql" = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
initialDatabases = [
|
||||||
|
{ name = "drupal_cms"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
settings.mysqld.port = toString databasePort;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.processes.php = {
|
||||||
|
command = pkgs.writeShellApplication {
|
||||||
|
name = "drush-server";
|
||||||
|
text = "vendor/bin/drush runserver ${toString httpPort}";
|
||||||
|
};
|
||||||
|
|
||||||
|
depends_on."mysql".condition = "process_healthy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
5
drupal-cms/tools/nix/systems.nix
Normal file
5
drupal-cms/tools/nix/systems.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systems = import inputs.systems;
|
||||||
|
}
|
||||||
12
drupal-cms/web/sites/default/settings.nix.php
Normal file
12
drupal-cms/web/sites/default/settings.nix.php
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$databases['default']['default'] = [
|
||||||
|
'database' => 'drupal_cms',
|
||||||
|
'username' => 'root',
|
||||||
|
'password' => '',
|
||||||
|
'host' => '127.0.0.1',
|
||||||
|
'port' => '3306',
|
||||||
|
'driver' => 'mysql',
|
||||||
|
'prefix' => '',
|
||||||
|
'collation' => 'utf8mb4_general_ci',
|
||||||
|
];
|
||||||
2
drupal-nix-flake/.gitignore
vendored
2
drupal-nix-flake/.gitignore
vendored
|
|
@ -43,3 +43,5 @@
|
||||||
/web/themes/contrib/
|
/web/themes/contrib/
|
||||||
/web/update.php
|
/web/update.php
|
||||||
/web/web.config
|
/web/web.config
|
||||||
|
|
||||||
|
!/web/sites/default/settings.nix.php
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
|
devshell.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
devshell.url = "github:numtide/devshell";
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
import-tree.url = "github:vic/import-tree";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
process-compose.url = "github:Platonic-Systems/process-compose-flake";
|
process-compose.url = "github:Platonic-Systems/process-compose-flake";
|
||||||
services.url = "github:juspay/services-flake";
|
services.url = "github:juspay/services-flake";
|
||||||
|
|
@ -10,75 +13,6 @@
|
||||||
outputs =
|
outputs =
|
||||||
inputs:
|
inputs:
|
||||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
systems = import inputs.systems;
|
imports = [ (inputs.import-tree ./tools/nix) ];
|
||||||
|
|
||||||
imports = [
|
|
||||||
inputs.process-compose.flakeModule
|
|
||||||
];
|
|
||||||
|
|
||||||
perSystem =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
php = pkgs.php83.buildEnv {
|
|
||||||
extraConfig = ''
|
|
||||||
memory_limit = 128M
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
phpPackages = pkgs.php83Packages;
|
|
||||||
|
|
||||||
databasePort = 3306;
|
|
||||||
webPort = 8000;
|
|
||||||
in
|
|
||||||
with lib;
|
|
||||||
{
|
|
||||||
|
|
||||||
process-compose."default" = {
|
|
||||||
imports = [
|
|
||||||
inputs.services.processComposeModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
services = {
|
|
||||||
mysql."mysql1" = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
initialDatabases = [
|
|
||||||
{ name = "drupal_nix_flake_example"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
settings.mysqld.port = toString databasePort;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
settings.processes = {
|
|
||||||
php = {
|
|
||||||
command = pkgs.writeShellApplication {
|
|
||||||
name = "php-local-server";
|
|
||||||
|
|
||||||
text = "${getExe php} -S 127.0.0.1:${toString webPort} -t web";
|
|
||||||
};
|
|
||||||
|
|
||||||
depends_on."mysql1".condition = "process_healthy";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
|
||||||
inputsFrom = [
|
|
||||||
config.process-compose."default".services.outputs.devShell
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
php
|
|
||||||
phpPackages.composer
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
34
drupal-nix-flake/phpcs.xml.dist
Normal file
34
drupal-nix-flake/phpcs.xml.dist
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ruleset name="drupal-nix-flake">
|
||||||
|
<description>Codestyle ruleset for drupal-nix-flake</description>
|
||||||
|
|
||||||
|
<rule ref="Drupal"/>
|
||||||
|
<rule ref="DrupalPractice"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<arg name="colors"/>
|
||||||
|
<arg value="np"/>
|
||||||
|
|
||||||
|
<file>web/modules/custom</file>
|
||||||
|
|
||||||
|
<rule ref="Drupal">
|
||||||
|
<exclude name="Drupal.Commenting.ClassComment.Missing"/>
|
||||||
|
<exclude name="Drupal.Commenting.DataTypeNamespace.DataTypeNamespace"/>
|
||||||
|
<exclude name="Drupal.Commenting.Deprecated"/>
|
||||||
|
<exclude name="Drupal.Commenting.DocComment.ContentAfterOpen"/>
|
||||||
|
<exclude name="Drupal.Commenting.DocComment.MissingShort"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.IncorrectParamVarName"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.IncorrectTypeHint"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.InvalidReturn"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.Missing"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.MissingParamComment"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.MissingReturnComment"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.ParamTypeSpaces"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.TypeHintMissing"/>
|
||||||
|
<exclude name="Drupal.Commenting.InlineComment.DocBlock"/>
|
||||||
|
<exclude name="Drupal.Commenting.VariableComment.Missing"/>
|
||||||
|
<exclude name="Drupal.NamingConventions.ValidFunctionName.ScopeNotCamelCaps"/>
|
||||||
|
<exclude name="DrupalPractice.Objects.StrictSchemaDisabled.StrictConfigSchema"/>
|
||||||
|
</rule>
|
||||||
|
</ruleset>
|
||||||
5
drupal-nix-flake/phpstan.neon.dist
Normal file
5
drupal-nix-flake/phpstan.neon.dist
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
parameters:
|
||||||
|
level: max
|
||||||
|
|
||||||
|
paths:
|
||||||
|
- web/modules/custom
|
||||||
|
|
@ -1,41 +1,29 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<phpunit
|
<phpunit
|
||||||
beStrictAboutChangesToGlobalState="true"
|
beStrictAboutChangesToGlobalState="true"
|
||||||
beStrictAboutOutputDuringTests="true"
|
beStrictAboutOutputDuringTests="false"
|
||||||
beStrictAboutTestsThatDoNotTestAnything="true"
|
beStrictAboutTestsThatDoNotTestAnything="true"
|
||||||
bootstrap="web/core/tests/bootstrap.php"
|
bootstrap="web/core/tests/bootstrap.php"
|
||||||
cacheDirectory=".phpunit.cache"
|
|
||||||
cacheResult="false"
|
|
||||||
colors="true"
|
colors="true"
|
||||||
displayDetailsOnTestsThatTriggerDeprecations="true"
|
printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter"
|
||||||
displayDetailsOnTestsThatTriggerErrors="true"
|
|
||||||
displayDetailsOnTestsThatTriggerWarnings="true"
|
|
||||||
failOnRisky="true"
|
|
||||||
failOnWarning="true"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"
|
|
||||||
>
|
>
|
||||||
<testsuites>
|
|
||||||
<testsuite name="Test Suite">
|
|
||||||
<directory suffix="Test.php">./web/modules/*/tests/src/*</directory>
|
|
||||||
</testsuite>
|
|
||||||
</testsuites>
|
|
||||||
|
|
||||||
<php>
|
<php>
|
||||||
<ini name="error_reporting" value="32767"/>
|
<ini name="error_reporting" value="32767"/>
|
||||||
<ini name="memory_limit" value="-1"/>
|
<ini name="memory_limit" value="-1"/>
|
||||||
<env name="BROWSERTEST_OUTPUT_BASE_URL" value=""/>
|
|
||||||
<env name="MINK_DRIVER_ARGS" value=""/>
|
|
||||||
<env name="MINK_DRIVER_ARGS_WEBDRIVER" value=""/>
|
|
||||||
<env name="MINK_DRIVER_CLASS" value=""/>
|
|
||||||
<env name="SIMPLETEST_BASE_URL" value="http://localhost:8000"/>
|
|
||||||
<env name="SIMPLETEST_DB" value="sqlite://localhost//dev/shm/test.sqlite"/>
|
|
||||||
</php>
|
</php>
|
||||||
|
|
||||||
<extensions>
|
<testsuites>
|
||||||
<bootstrap class="Drupal\TestTools\Extension\HtmlLogging\HtmlOutputLogger">
|
<testsuite name="functional">
|
||||||
<parameter name="outputDirectory" value="sites/simpletest/browser_output"/>
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Functional</directory>
|
||||||
<parameter name="verbose" value="true"/>
|
</testsuite>
|
||||||
</bootstrap>
|
|
||||||
</extensions>
|
<testsuite name="kernel">
|
||||||
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Kernel</directory>
|
||||||
|
</testsuite>
|
||||||
|
|
||||||
|
<testsuite name="unit">
|
||||||
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Unit</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
</phpunit>
|
</phpunit>
|
||||||
|
|
|
||||||
31
drupal-nix-flake/tools/nix/dev-shells.nix
Normal file
31
drupal-nix-flake/tools/nix/dev-shells.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ inputs.devshell.flakeModule ];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
devshells.default =
|
||||||
|
with pkgs;
|
||||||
|
let
|
||||||
|
php = pkgs.php83.buildEnv {
|
||||||
|
extraConfig = ''
|
||||||
|
memory_limit = 128M
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
phpPackages = pkgs.php83Packages;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = [
|
||||||
|
mariadb
|
||||||
|
php
|
||||||
|
phpPackages.composer
|
||||||
|
phpactor
|
||||||
|
pv
|
||||||
|
yamlfmt
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
40
drupal-nix-flake/tools/nix/process-compose.nix
Normal file
40
drupal-nix-flake/tools/nix/process-compose.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ inputs.process-compose.flakeModule ];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
databasePort = 3306;
|
||||||
|
httpPort = 8888;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
process-compose."default" = {
|
||||||
|
imports = [
|
||||||
|
inputs.services.processComposeModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
mysql."mysql" = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
initialDatabases = [
|
||||||
|
{ name = "drupal_nix_flake_example"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
settings.mysqld.port = toString databasePort;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.processes.php = {
|
||||||
|
command = pkgs.writeShellApplication {
|
||||||
|
name = "drush-server";
|
||||||
|
text = "vendor/bin/drush runserver ${toString httpPort}";
|
||||||
|
};
|
||||||
|
|
||||||
|
depends_on."mysql".condition = "process_healthy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
5
drupal-nix-flake/tools/nix/systems.nix
Normal file
5
drupal-nix-flake/tools/nix/systems.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systems = import inputs.systems;
|
||||||
|
}
|
||||||
12
drupal-nix-flake/web/sites/default/settings.nix.php
Normal file
12
drupal-nix-flake/web/sites/default/settings.nix.php
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$databases['default']['default'] = [
|
||||||
|
'database' => 'drupal_nix_flake_example',
|
||||||
|
'username' => 'root',
|
||||||
|
'password' => '',
|
||||||
|
'host' => '127.0.0.1',
|
||||||
|
'port' => '3306',
|
||||||
|
'driver' => 'mysql',
|
||||||
|
'prefix' => '',
|
||||||
|
'collation' => 'utf8mb4_general_ci',
|
||||||
|
];
|
||||||
2
drupal/.gitignore
vendored
2
drupal/.gitignore
vendored
|
|
@ -43,3 +43,5 @@
|
||||||
/web/themes/contrib/
|
/web/themes/contrib/
|
||||||
/web/update.php
|
/web/update.php
|
||||||
/web/web.config
|
/web/web.config
|
||||||
|
|
||||||
|
!/web/sites/default/settings.nix.php
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
|
devshell.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
devshell.url = "github:numtide/devshell";
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
import-tree.url = "github:vic/import-tree";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||||
process-compose.url = "github:Platonic-Systems/process-compose-flake";
|
process-compose.url = "github:Platonic-Systems/process-compose-flake";
|
||||||
services.url = "github:juspay/services-flake";
|
services.url = "github:juspay/services-flake";
|
||||||
|
|
@ -10,75 +13,6 @@
|
||||||
outputs =
|
outputs =
|
||||||
inputs:
|
inputs:
|
||||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
systems = import inputs.systems;
|
imports = [ (inputs.import-tree ./tools/nix) ];
|
||||||
|
|
||||||
imports = [
|
|
||||||
inputs.process-compose.flakeModule
|
|
||||||
];
|
|
||||||
|
|
||||||
perSystem =
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
php = pkgs.php83.buildEnv {
|
|
||||||
extraConfig = ''
|
|
||||||
memory_limit = 128M
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
phpPackages = pkgs.php83Packages;
|
|
||||||
|
|
||||||
databasePort = 3306;
|
|
||||||
webPort = 8000;
|
|
||||||
in
|
|
||||||
with lib;
|
|
||||||
{
|
|
||||||
|
|
||||||
process-compose."default" = {
|
|
||||||
imports = [
|
|
||||||
inputs.services.processComposeModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
services = {
|
|
||||||
mysql."mysql1" = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
initialDatabases = [
|
|
||||||
{ name = "drupal-lab"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
settings.mysqld.port = toString databasePort;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
settings.processes = {
|
|
||||||
php = {
|
|
||||||
command = pkgs.writeShellApplication {
|
|
||||||
name = "php-local-server";
|
|
||||||
|
|
||||||
text = "${getExe php} -S 127.0.0.1:${toString webPort} -t web";
|
|
||||||
};
|
|
||||||
|
|
||||||
depends_on."mysql1".condition = "process_healthy";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
|
||||||
inputsFrom = [
|
|
||||||
config.process-compose."default".services.outputs.devShell
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
php
|
|
||||||
phpPackages.composer
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
34
drupal/phpcs.xml.dist
Normal file
34
drupal/phpcs.xml.dist
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ruleset name="drupal">
|
||||||
|
<description>Codestyle ruleset for drupal</description>
|
||||||
|
|
||||||
|
<rule ref="Drupal"/>
|
||||||
|
<rule ref="DrupalPractice"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<arg name="colors"/>
|
||||||
|
<arg value="np"/>
|
||||||
|
|
||||||
|
<file>web/modules/custom</file>
|
||||||
|
|
||||||
|
<rule ref="Drupal">
|
||||||
|
<exclude name="Drupal.Commenting.ClassComment.Missing"/>
|
||||||
|
<exclude name="Drupal.Commenting.DataTypeNamespace.DataTypeNamespace"/>
|
||||||
|
<exclude name="Drupal.Commenting.Deprecated"/>
|
||||||
|
<exclude name="Drupal.Commenting.DocComment.ContentAfterOpen"/>
|
||||||
|
<exclude name="Drupal.Commenting.DocComment.MissingShort"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.IncorrectParamVarName"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.IncorrectTypeHint"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.InvalidReturn"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.Missing"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.MissingParamComment"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.MissingReturnComment"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.ParamTypeSpaces"/>
|
||||||
|
<exclude name="Drupal.Commenting.FunctionComment.TypeHintMissing"/>
|
||||||
|
<exclude name="Drupal.Commenting.InlineComment.DocBlock"/>
|
||||||
|
<exclude name="Drupal.Commenting.VariableComment.Missing"/>
|
||||||
|
<exclude name="Drupal.NamingConventions.ValidFunctionName.ScopeNotCamelCaps"/>
|
||||||
|
<exclude name="DrupalPractice.Objects.StrictSchemaDisabled.StrictConfigSchema"/>
|
||||||
|
</rule>
|
||||||
|
</ruleset>
|
||||||
5
drupal/phpstan.neon.dist
Normal file
5
drupal/phpstan.neon.dist
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
parameters:
|
||||||
|
level: max
|
||||||
|
|
||||||
|
paths:
|
||||||
|
- web/modules/custom
|
||||||
|
|
@ -1,41 +1,29 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<phpunit
|
<phpunit
|
||||||
beStrictAboutChangesToGlobalState="true"
|
beStrictAboutChangesToGlobalState="true"
|
||||||
beStrictAboutOutputDuringTests="true"
|
beStrictAboutOutputDuringTests="false"
|
||||||
beStrictAboutTestsThatDoNotTestAnything="true"
|
beStrictAboutTestsThatDoNotTestAnything="true"
|
||||||
bootstrap="web/core/tests/bootstrap.php"
|
bootstrap="web/core/tests/bootstrap.php"
|
||||||
cacheDirectory=".phpunit.cache"
|
|
||||||
cacheResult="false"
|
|
||||||
colors="true"
|
colors="true"
|
||||||
displayDetailsOnTestsThatTriggerDeprecations="true"
|
printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter"
|
||||||
displayDetailsOnTestsThatTriggerErrors="true"
|
|
||||||
displayDetailsOnTestsThatTriggerWarnings="true"
|
|
||||||
failOnRisky="true"
|
|
||||||
failOnWarning="true"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd"
|
|
||||||
>
|
>
|
||||||
<testsuites>
|
|
||||||
<testsuite name="Test Suite">
|
|
||||||
<directory suffix="Test.php">./web/modules/*/tests/src/*</directory>
|
|
||||||
</testsuite>
|
|
||||||
</testsuites>
|
|
||||||
|
|
||||||
<php>
|
<php>
|
||||||
<ini name="error_reporting" value="32767"/>
|
<ini name="error_reporting" value="32767"/>
|
||||||
<ini name="memory_limit" value="-1"/>
|
<ini name="memory_limit" value="-1"/>
|
||||||
<env name="BROWSERTEST_OUTPUT_BASE_URL" value=""/>
|
|
||||||
<env name="MINK_DRIVER_ARGS" value=""/>
|
|
||||||
<env name="MINK_DRIVER_ARGS_WEBDRIVER" value=""/>
|
|
||||||
<env name="MINK_DRIVER_CLASS" value=""/>
|
|
||||||
<env name="SIMPLETEST_BASE_URL" value="http://localhost:8000"/>
|
|
||||||
<env name="SIMPLETEST_DB" value="sqlite://localhost//dev/shm/test.sqlite"/>
|
|
||||||
</php>
|
</php>
|
||||||
|
|
||||||
<extensions>
|
<testsuites>
|
||||||
<bootstrap class="Drupal\TestTools\Extension\HtmlLogging\HtmlOutputLogger">
|
<testsuite name="functional">
|
||||||
<parameter name="outputDirectory" value="sites/simpletest/browser_output"/>
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Functional</directory>
|
||||||
<parameter name="verbose" value="true"/>
|
</testsuite>
|
||||||
</bootstrap>
|
|
||||||
</extensions>
|
<testsuite name="kernel">
|
||||||
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Kernel</directory>
|
||||||
|
</testsuite>
|
||||||
|
|
||||||
|
<testsuite name="unit">
|
||||||
|
<directory suffix="Test.php">./web/modules/custom/**/tests/**/Unit</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
</phpunit>
|
</phpunit>
|
||||||
|
|
|
||||||
31
drupal/tools/nix/dev-shells.nix
Normal file
31
drupal/tools/nix/dev-shells.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ inputs.devshell.flakeModule ];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
devshells.default =
|
||||||
|
with pkgs;
|
||||||
|
let
|
||||||
|
php = pkgs.php83.buildEnv {
|
||||||
|
extraConfig = ''
|
||||||
|
memory_limit = 128M
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
phpPackages = pkgs.php83Packages;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = [
|
||||||
|
mariadb
|
||||||
|
php
|
||||||
|
phpPackages.composer
|
||||||
|
phpactor
|
||||||
|
pv
|
||||||
|
yamlfmt
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
40
drupal/tools/nix/process-compose.nix
Normal file
40
drupal/tools/nix/process-compose.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ inputs.process-compose.flakeModule ];
|
||||||
|
|
||||||
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
databasePort = 3306;
|
||||||
|
httpPort = 8888;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
process-compose."default" = {
|
||||||
|
imports = [
|
||||||
|
inputs.services.processComposeModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
mysql."mysql" = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
initialDatabases = [
|
||||||
|
{ name = "drupal-lab"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
settings.mysqld.port = toString databasePort;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.processes.php = {
|
||||||
|
command = pkgs.writeShellApplication {
|
||||||
|
name = "drush-server";
|
||||||
|
text = "vendor/bin/drush runserver ${toString httpPort}";
|
||||||
|
};
|
||||||
|
|
||||||
|
depends_on."mysql".condition = "process_healthy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
5
drupal/tools/nix/systems.nix
Normal file
5
drupal/tools/nix/systems.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systems = import inputs.systems;
|
||||||
|
}
|
||||||
12
drupal/web/sites/default/settings.nix.php
Normal file
12
drupal/web/sites/default/settings.nix.php
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$databases['default']['default'] = [
|
||||||
|
'database' => 'drupal-lab',
|
||||||
|
'username' => 'root',
|
||||||
|
'password' => '',
|
||||||
|
'host' => '127.0.0.1',
|
||||||
|
'port' => '3306',
|
||||||
|
'driver' => 'mysql',
|
||||||
|
'prefix' => '',
|
||||||
|
'collation' => 'utf8mb4_general_ci',
|
||||||
|
];
|
||||||
Loading…
Add table
Add a link
Reference in a new issue