134 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
 | 
						|
 | 
						|
set -o errexit
 | 
						|
set -o pipefail
 | 
						|
 | 
						|
# If we're running in CI we need to disable TTY allocation for docker compose
 | 
						|
# commands that enable it by default, such as exec and run.
 | 
						|
TTY="${TTY:-}"
 | 
						|
if [[ ! -t 1 ]]; then
 | 
						|
  TTY="-T"
 | 
						|
fi
 | 
						|
 | 
						|
# 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"
 | 
						|
}
 | 
						|
 | 
						|
# Install Drupal.
 | 
						|
function install {
 | 
						|
  drush site:install -y "${@}"
 | 
						|
}
 | 
						|
 | 
						|
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 || true
 | 
						|
 | 
						|
  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 ${TTY} "${@}"
 | 
						|
}
 | 
						|
 | 
						|
function _run {
 | 
						|
  local service="${1}"
 | 
						|
  local command="${2}"
 | 
						|
 | 
						|
  docker compose run \
 | 
						|
    --entrypoint "${command}" \
 | 
						|
    --no-deps \
 | 
						|
    --rm \
 | 
						|
    ${TTY} \
 | 
						|
    "${service}" "${@}"
 | 
						|
}
 | 
						|
 | 
						|
# Include any local tasks.
 | 
						|
[[ -e run.local ]] && source run.local
 | 
						|
 | 
						|
TIMEFORMAT=$'\nTask completed in %3lR'
 | 
						|
time "${@:-help}"
 | 
						|
 | 
						|
# vim: ft=bash
 |