build-configs(update)

This commit is contained in:
Oliver Davies 2023-10-08 09:46:03 +01:00
parent 25bb2f1d4e
commit cd8bbdbb97
6 changed files with 159 additions and 147 deletions

114
.gitignore vendored
View file

@ -1,79 +1,39 @@
# Ignore directories generated by Composer
/bin
/drush/contrib/
/vendor/
/web/core/
/web/modules/contrib/
/web/themes/contrib/
/web/profiles/contrib/
/web/libraries/
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
# Ignore composer.lock as this is template project
/composer.lock
.editorconfig
.env
.gitattributes
vendor/
web/.csslintrc
web/.eslintignore
web/.eslintrc.json
web/.ht.router.php
web/.htaccess
web/INSTALL.txt
web/README.md
web/autoload.php
web/core/
web/example.gitignore
web/index.php
web/modules/README.txt
web/modules/contrib/
web/profiles/README.txt
web/robots.txt
web/sites/*/files/
web/sites/*/private/
web/sites/*/services*.yml
web/sites/*/settings*.php
web/sites/README.txt
web/sites/default/default.services.yml
web/sites/default/default.settings.php
web/sites/development.services.yml
web/sites/example.settings.local.php
web/sites/example.sites.php
web/sites/simpletest/
web/themes/README.txt
web/themes/contrib/
web/update.php
web/web.config
# Ignore sensitive information
/web/sites/*/settings*.php
/web/sites/*/services*.yml
# Ignore Drupal's file directory
/web/sites/*/files/
# Ignore scaffold files
/.editorconfig
/.gitattributes
/web/.csslintrc
/web/.eslintignore
/web/.eslintrc.json
/web/.gitignore
/web/.ht.router.php
/web/.htaccess
/web/INSTALL.txt
/web/README.md
/web/README.txt
/web/autoload.php
/web/example.gitignore
/web/index.php
/web/modules/README.txt
/web/profiles/README.txt
/web/robots.txt
/web/sites/README.txt
/web/sites/default/default.services.yml
/web/sites/default/default.settings.php
/web/sites/development.services.yml
/web/sites/example.settings.local.php
/web/sites/example.sites.php
/web/themes/README.txt
/web/update.php
/web/web.config
# Ignore SimpleTest multi-site environment
/web/sites/simpletest
# Ignore IDE files
.idea/
.vscode/
# Ignore .env files as they are personal
/.env
# Ignore DB dumps
*.sql
*.sql.gz
*.mysql
*.mysql.gz
# Ignore Lando overrides
.lando.local.yml
# Ignore Lando Solr config
/.lando/solr
# Ignore temp files
/.phpunit.result.cache
# Ignore ddev configuration folders
.ddev/.global_commands/
.ddev/commands/
.ddev/homeadditions/
.ddev/providers/
.ddev/xhprof/
# Docker
/docker-compose.override.yml

View file

@ -70,6 +70,7 @@ services:
volumes:
db-data: {}
networks:
web:
external: true

View file

@ -1,67 +0,0 @@
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
default:
@just --list
# Start the project
start:
cp -v --no-clobber .env.example .env
docker compose up -d
# Stop the project
stop:
docker compose down
composer *args:
just _exec php composer {{ args }}
alias phpunit := test
test *args:
just _exec php phpunit --colors=always {{ args }}
test-watch *args:
nodemon --ext "*" --watch "." --exec "just test || exit 1" --ignore */sites/simpletest
drush *args:
just _exec php drush {{ args }}
install *args:
just _exec php drush site:install -y {{ args }}
# Enable or disable Git hooks
git-hooks command:
#!/usr/bin/env bash
set -euo pipefail
case "{{ command }}" in
"on")
echo "Enabling Git hooks..."
git config core.hooksPath .githooks
;;
"off")
echo "Disabling Git hooks..."
git config --unset core.hooksPath
;;
*)
echo "Error: Invalid argument. Must be either 'on' or 'off'"
;;
esac
_exec +args:
docker compose exec -T {{ args }}
_run service command *args:
docker compose run \
--entrypoint {{ command }} \
--no-deps \
--rm \
-T \
{{ service }} {{ args }}
# vim: ft=just

View file

@ -9,7 +9,7 @@
<rule ref="DrupalPractice"/>
<rule ref="Drupal">
<rule ref="Drupal">
<exclude name="Drupal.Commenting.ClassComment.Missing"/>
<exclude name="Drupal.Commenting.DataTypeNamespace.DataTypeNamespace"/>
<exclude name="Drupal.Commenting.Deprecated"/>
@ -28,4 +28,4 @@
<exclude name="Drupal.NamingConventions.ValidFunctionName.ScopeNotCamelCaps"/>
<exclude name="DrupalPractice.Objects.StrictSchemaDisabled.StrictConfigSchema"/>
</rule>
</ruleset>
</ruleset>

View file

@ -6,4 +6,4 @@ parameters:
- *Test.php
- *TestBase.php
paths:
- src

118
run Executable file
View file

@ -0,0 +1,118 @@
#!/usr/bin/env bash
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
set -eu
# Run automated tests as part of the Continuous Integration (CI) pipeline.
function ci:test {
lint:dockerfile
docker compose version
docker network create traefik_proxy
cp --no-clobber .env.example .env
docker compose build --progress plain
docker compose up --detach
docker compose logs
composer install --quiet --no-progress
test --testdox
quality
}
# Run a command within the php container.
function cmd {
docker compose exec php "${@}"
}
function coding-standards {
cmd phpcs "${@}"
}
function composer {
_exec php composer "${@}"
}
function drush {
_exec php drush "${@}"
}
function git-hooks:off {
git config --unset core.hooksPath
}
function git-hooks:on {
git config core.hooksPath .githooks
}
# Display a list of all available commands.
function help {
printf "%s <task> [args]\n\nTasks:\n" "${0}"
compgen -A function | grep -v "^_" | cat -n
printf "\nExtended help:\n Each task has comments for general usage\n"
}
function lint:dockerfile {
docker container run --rm -i \
hadolint/hadolint hadolint --ignore DL3008 --ignore DL3059 -t style "${@}" - < Dockerfile
}
function quality {
coding-standards
static-analysis
}
function start {
cp -v --no-clobber .env.example .env
docker compose up -d
}
function static-analysis {
cmd phpstan --memory-limit=-1 --no-progress "${@}"
}
function stop {
docker compose down
}
function test {
_exec php phpunit --colors=always "${@}"
}
function test:commit {
test --testdox --testsuite functional
test --testdox --testsuite kernel
test --testdox --testsuite unit
quality
}
function _exec {
docker compose exec -T "${@}"
}
function _run {
local service="${1}"
local command="${2}"
docker compose run \
--entrypoint "${command}" \
--no-deps \
--rm \
-T \
"${service}" "${@}"
}
TIMEFORMAT=$'\nTask completed in %3lR'
time "${@:-help}"
# vim: ft=bash