mirror of
https://github.com/opdavies/build-configs.git
synced 2025-02-02 05:47:32 +00:00
Add more snapshot tests
This commit is contained in:
parent
680b72bb64
commit
ca8ffc5685
2
run
2
run
|
@ -80,6 +80,8 @@ function test:snapshots {
|
|||
local configs=(
|
||||
# TODO: add more configurations for different types and configurations.
|
||||
drupal
|
||||
drupal-commerce-kickstart
|
||||
drupal-localgov
|
||||
)
|
||||
|
||||
for config in "${configs[@]}"; do
|
||||
|
|
49
tests/snapshots/configs/drupal-commerce-kickstart.yaml
Normal file
49
tests/snapshots/configs/drupal-commerce-kickstart.yaml
Normal file
|
@ -0,0 +1,49 @@
|
|||
name: drupal-commerce-kickstart
|
||||
language: php
|
||||
type: drupal
|
||||
|
||||
web:
|
||||
type: nginx
|
||||
|
||||
database:
|
||||
type: mariadb
|
||||
version: 10
|
||||
|
||||
php:
|
||||
version: 8.1-fpm-bullseye
|
||||
phpcs: false
|
||||
phpstan: false
|
||||
phpunit: false
|
||||
|
||||
drupal:
|
||||
docroot: web
|
||||
|
||||
docker-compose:
|
||||
services:
|
||||
- database
|
||||
- php
|
||||
- web
|
||||
|
||||
dockerfile:
|
||||
stages:
|
||||
build:
|
||||
extra_directories:
|
||||
- config
|
||||
- patches
|
||||
- scripts
|
||||
commands:
|
||||
- composer validate
|
||||
- composer install
|
||||
extensions:
|
||||
install:
|
||||
- bcmath
|
||||
|
||||
git:
|
||||
ignore:
|
||||
- /bin/
|
||||
- /libraries/
|
||||
- /web/profiles/contrib/
|
||||
|
||||
experimental:
|
||||
createGitHubActionsConfiguration: true
|
||||
runGitHooksBeforePush: true
|
37
tests/snapshots/configs/drupal-localgov.yaml
Normal file
37
tests/snapshots/configs/drupal-localgov.yaml
Normal file
|
@ -0,0 +1,37 @@
|
|||
name: drupal-localgov
|
||||
language: php
|
||||
type: drupal
|
||||
|
||||
web:
|
||||
type: nginx
|
||||
|
||||
database:
|
||||
type: mariadb
|
||||
version: 10
|
||||
|
||||
php:
|
||||
version: 8.1-fpm-bullseye
|
||||
phpcs: false
|
||||
phpstan: false
|
||||
phpunit: false
|
||||
|
||||
drupal:
|
||||
docroot: web
|
||||
|
||||
docker-compose:
|
||||
services:
|
||||
- database
|
||||
- php
|
||||
- web
|
||||
|
||||
dockerfile:
|
||||
stages:
|
||||
build:
|
||||
commands:
|
||||
- composer validate --strict
|
||||
- composer install
|
||||
extra_directories:
|
||||
- assets
|
||||
|
||||
experimental:
|
||||
useNewDatabaseCredentials: true
|
|
@ -0,0 +1,2 @@
|
|||
/README.md
|
||||
/.github/
|
|
@ -0,0 +1,12 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
export DOCKER_UID=1000
|
||||
|
||||
export COMPOSE_PROJECT_NAME=drupal-commerce-kickstart
|
||||
export COMPOSE_PROFILES=web,php,database
|
||||
|
||||
export DOCKER_WEB_VOLUME=.:/app
|
||||
|
||||
export MYSQL_DATABASE=app
|
||||
export MYSQL_PASSWORD=app
|
||||
export MYSQL_USER=app
|
9
tests/snapshots/output/drupal-commerce-kickstart/.githooks/pre-push
Executable file
9
tests/snapshots/output/drupal-commerce-kickstart/.githooks/pre-push
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
set -o errexit
|
||||
|
||||
export TTY="-T"
|
||||
|
||||
./run test:commit
|
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
# Load the issue ID from an `.issue-id` file within the project and replace the
|
||||
# `ISSUE_ID` placeholder within a Git commit message.
|
||||
#
|
||||
# For example, running `echo "OD-123" > .issue-id` will add `Refs: OD-123` to
|
||||
# the commit message.
|
||||
#
|
||||
# This also works with multiple issue IDs in the same string, e.g.
|
||||
# "OD-123 OD-456", or IDs on multiple lines.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
PROJECT_DIR=$(git rev-parse --show-toplevel)
|
||||
ISSUE_FILE="$PROJECT_DIR/.issue-id"
|
||||
|
||||
if [ -f "${ISSUE_FILE}" ]; then
|
||||
ISSUE_IDS=$(cat "${ISSUE_FILE}" | tr '\n' ',' | tr ' ' ',' | sed 's/,$//' | sed 's/,/, /g')
|
||||
|
||||
if [ -n "${ISSUE_IDS}" ]; then
|
||||
sed -i.bak "s/# Refs:/Refs: $ISSUE_IDS/" "$1"
|
||||
fi
|
||||
fi
|
25
tests/snapshots/output/drupal-commerce-kickstart/.github/workflows/ci.yml
vendored
Normal file
25
tests/snapshots/output/drupal-commerce-kickstart/.github/workflows/ci.yml
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
COMPOSE_DOCKER_CLI_BUILD: 1
|
||||
DOCKER_BUILDKIT: 1
|
||||
DOCKER_UID: 1001
|
||||
|
||||
jobs:
|
||||
build_and_test:
|
||||
name: Build and test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout the code
|
||||
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
|
||||
|
||||
- name: Build and test
|
||||
run: |
|
||||
./run ci:test
|
45
tests/snapshots/output/drupal-commerce-kickstart/.gitignore
vendored
Normal file
45
tests/snapshots/output/drupal-commerce-kickstart/.gitignore
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
.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
|
||||
|
||||
# Docker.
|
||||
.env
|
||||
docker-compose.override.yaml
|
||||
|
||||
|
||||
/bin/
|
||||
/libraries/
|
||||
/web/profiles/contrib/
|
|
@ -0,0 +1,2 @@
|
|||
ignore:
|
||||
- DL3059
|
67
tests/snapshots/output/drupal-commerce-kickstart/Dockerfile
Normal file
67
tests/snapshots/output/drupal-commerce-kickstart/Dockerfile
Normal file
|
@ -0,0 +1,67 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
FROM php:8.1-fpm-bullseye AS base
|
||||
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||
RUN which composer && composer -V
|
||||
|
||||
ARG DOCKER_UID=1000
|
||||
ENV DOCKER_UID="${DOCKER_UID}"
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN adduser --disabled-password --uid "${DOCKER_UID}" app \
|
||||
&& chown app:app -R /app
|
||||
|
||||
USER app
|
||||
|
||||
ENV PATH="${PATH}:/app/bin:/app/vendor/bin"
|
||||
|
||||
COPY --chown=app:app composer.* ./
|
||||
|
||||
################################################################################
|
||||
|
||||
FROM base AS build
|
||||
|
||||
USER root
|
||||
|
||||
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
git libpng-dev libjpeg-dev libzip-dev mariadb-client unzip \
|
||||
&& rm -rf /var/lib/apt/lists/* /usr/share/doc /usr/share/man \
|
||||
&& apt-get clean
|
||||
|
||||
RUN docker-php-ext-configure gd --with-jpeg
|
||||
|
||||
RUN docker-php-ext-install bcmath gd pdo_mysql zip
|
||||
|
||||
COPY --chown=app:app phpunit.xml* ./
|
||||
|
||||
COPY --chown=app:app config config
|
||||
COPY --chown=app:app patches patches
|
||||
COPY --chown=app:app scripts scripts
|
||||
|
||||
|
||||
USER app
|
||||
|
||||
RUN composer validate
|
||||
RUN composer install
|
||||
|
||||
COPY --chown=app:app tools/docker/images/php/root /
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/docker-entrypoint-php"]
|
||||
CMD ["php-fpm"]
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
|
||||
FROM nginx:1 as web
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY tools/docker/images/web/root /
|
|
@ -0,0 +1,77 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
x-proxy: &default-proxy
|
||||
networks:
|
||||
- default
|
||||
- web
|
||||
labels:
|
||||
- "traefik.docker.network=traefik_proxy"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=Host(
|
||||
`${COMPOSE_PROJECT_NAME}.localhost`,
|
||||
)"
|
||||
|
||||
x-app: &default-app
|
||||
volumes:
|
||||
- "${DOCKER_WEB_VOLUME:-./web:/app/web}"
|
||||
env_file:
|
||||
- .env
|
||||
restart: "${DOCKER_RESTART_POLICY:-unless-stopped}"
|
||||
networks:
|
||||
- default
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${DOCKER_MYSQL_CPUS:-0}"
|
||||
memory: "${DOCKER_MYSQL_MEMORY:-0}"
|
||||
labels:
|
||||
- "traefik.enabled=false"
|
||||
tty: true
|
||||
|
||||
services:
|
||||
web:
|
||||
<<: [*default-proxy, *default-app]
|
||||
build:
|
||||
context: .
|
||||
target: web
|
||||
depends_on:
|
||||
- php
|
||||
profiles: [web]
|
||||
|
||||
php:
|
||||
<<: [*default-app]
|
||||
build:
|
||||
context: .
|
||||
target: build
|
||||
args:
|
||||
- "DOCKER_UID=${DOCKER_UID:-1000}"
|
||||
volumes:
|
||||
- .:/app
|
||||
depends_on:
|
||||
- database
|
||||
profiles: [php]
|
||||
|
||||
database:
|
||||
image: mariadb:10
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${DOCKER_MYSQL_CPUS:-0}"
|
||||
memory: "${DOCKER_MYSQL_MEMORY:-0}"
|
||||
volumes:
|
||||
- db-data:/var/lib/mysql
|
||||
|
||||
env_file:
|
||||
- .env
|
||||
labels:
|
||||
- "traefik.enabled=false"
|
||||
environment:
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: true
|
||||
profiles: [database]
|
||||
|
||||
volumes:
|
||||
db-data: {}
|
||||
|
||||
networks:
|
||||
web:
|
||||
external: true
|
||||
name: traefik_proxy
|
111
tests/snapshots/output/drupal-commerce-kickstart/run
Executable file
111
tests/snapshots/output/drupal-commerce-kickstart/run
Executable file
|
@ -0,0 +1,111 @@
|
|||
#!/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
|
||||
|
||||
|
||||
}
|
||||
|
||||
# Run a command within the php container.
|
||||
function cmd {
|
||||
docker compose exec php "${@}"
|
||||
}
|
||||
|
||||
|
||||
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 start {
|
||||
cp -v --no-clobber .env.example .env
|
||||
|
||||
docker compose up -d
|
||||
}
|
||||
|
||||
|
||||
function stop {
|
||||
docker compose down
|
||||
}
|
||||
|
||||
|
||||
function test:commit {
|
||||
|
||||
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
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
[[ -f composer.json && ! -d vendor ]] && composer install
|
||||
|
||||
eval "$@"
|
|
@ -0,0 +1,4 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
max_vars_input = 1000
|
||||
memory_limit = 128M
|
1
tests/snapshots/output/drupal-localgov/.dockerignore
Normal file
1
tests/snapshots/output/drupal-localgov/.dockerignore
Normal file
|
@ -0,0 +1 @@
|
|||
/README.md
|
12
tests/snapshots/output/drupal-localgov/.env.example
Normal file
12
tests/snapshots/output/drupal-localgov/.env.example
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
export DOCKER_UID=1000
|
||||
|
||||
export COMPOSE_PROJECT_NAME=drupal-localgov
|
||||
export COMPOSE_PROFILES=web,php,database
|
||||
|
||||
export DOCKER_WEB_VOLUME=.:/app
|
||||
|
||||
export MYSQL_DATABASE=app
|
||||
export MYSQL_PASSWORD=app
|
||||
export MYSQL_USER=app
|
27
tests/snapshots/output/drupal-localgov/.githooks/prepare-commit-msg
Executable file
27
tests/snapshots/output/drupal-localgov/.githooks/prepare-commit-msg
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
# Load the issue ID from an `.issue-id` file within the project and replace the
|
||||
# `ISSUE_ID` placeholder within a Git commit message.
|
||||
#
|
||||
# For example, running `echo "OD-123" > .issue-id` will add `Refs: OD-123` to
|
||||
# the commit message.
|
||||
#
|
||||
# This also works with multiple issue IDs in the same string, e.g.
|
||||
# "OD-123 OD-456", or IDs on multiple lines.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
PROJECT_DIR=$(git rev-parse --show-toplevel)
|
||||
ISSUE_FILE="$PROJECT_DIR/.issue-id"
|
||||
|
||||
if [ -f "${ISSUE_FILE}" ]; then
|
||||
ISSUE_IDS=$(cat "${ISSUE_FILE}" | tr '\n' ',' | tr ' ' ',' | sed 's/,$//' | sed 's/,/, /g')
|
||||
|
||||
if [ -n "${ISSUE_IDS}" ]; then
|
||||
sed -i.bak "s/# Refs:/Refs: $ISSUE_IDS/" "$1"
|
||||
fi
|
||||
fi
|
42
tests/snapshots/output/drupal-localgov/.gitignore
vendored
Normal file
42
tests/snapshots/output/drupal-localgov/.gitignore
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
.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
|
||||
|
||||
# Docker.
|
||||
.env
|
||||
docker-compose.override.yaml
|
||||
|
||||
|
2
tests/snapshots/output/drupal-localgov/.hadolint.yaml
Normal file
2
tests/snapshots/output/drupal-localgov/.hadolint.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
ignore:
|
||||
- DL3059
|
65
tests/snapshots/output/drupal-localgov/Dockerfile
Normal file
65
tests/snapshots/output/drupal-localgov/Dockerfile
Normal file
|
@ -0,0 +1,65 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
FROM php:8.1-fpm-bullseye AS base
|
||||
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||
RUN which composer && composer -V
|
||||
|
||||
ARG DOCKER_UID=1000
|
||||
ENV DOCKER_UID="${DOCKER_UID}"
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN adduser --disabled-password --uid "${DOCKER_UID}" app \
|
||||
&& chown app:app -R /app
|
||||
|
||||
USER app
|
||||
|
||||
ENV PATH="${PATH}:/app/bin:/app/vendor/bin"
|
||||
|
||||
COPY --chown=app:app composer.* ./
|
||||
|
||||
################################################################################
|
||||
|
||||
FROM base AS build
|
||||
|
||||
USER root
|
||||
|
||||
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
git libpng-dev libjpeg-dev libzip-dev mariadb-client unzip \
|
||||
&& rm -rf /var/lib/apt/lists/* /usr/share/doc /usr/share/man \
|
||||
&& apt-get clean
|
||||
|
||||
RUN docker-php-ext-configure gd --with-jpeg
|
||||
|
||||
RUN docker-php-ext-install gd pdo_mysql zip
|
||||
|
||||
COPY --chown=app:app phpunit.xml* ./
|
||||
|
||||
COPY --chown=app:app assets assets
|
||||
|
||||
|
||||
USER app
|
||||
|
||||
RUN composer validate --strict
|
||||
RUN composer install
|
||||
|
||||
COPY --chown=app:app tools/docker/images/php/root /
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/docker-entrypoint-php"]
|
||||
CMD ["php-fpm"]
|
||||
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
|
||||
FROM nginx:1 as web
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY tools/docker/images/web/root /
|
77
tests/snapshots/output/drupal-localgov/docker-compose.yaml
Normal file
77
tests/snapshots/output/drupal-localgov/docker-compose.yaml
Normal file
|
@ -0,0 +1,77 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
x-proxy: &default-proxy
|
||||
networks:
|
||||
- default
|
||||
- web
|
||||
labels:
|
||||
- "traefik.docker.network=traefik_proxy"
|
||||
- "traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=Host(
|
||||
`${COMPOSE_PROJECT_NAME}.localhost`,
|
||||
)"
|
||||
|
||||
x-app: &default-app
|
||||
volumes:
|
||||
- "${DOCKER_WEB_VOLUME:-./web:/app/web}"
|
||||
env_file:
|
||||
- .env
|
||||
restart: "${DOCKER_RESTART_POLICY:-unless-stopped}"
|
||||
networks:
|
||||
- default
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${DOCKER_MYSQL_CPUS:-0}"
|
||||
memory: "${DOCKER_MYSQL_MEMORY:-0}"
|
||||
labels:
|
||||
- "traefik.enabled=false"
|
||||
tty: true
|
||||
|
||||
services:
|
||||
web:
|
||||
<<: [*default-proxy, *default-app]
|
||||
build:
|
||||
context: .
|
||||
target: web
|
||||
depends_on:
|
||||
- php
|
||||
profiles: [web]
|
||||
|
||||
php:
|
||||
<<: [*default-app]
|
||||
build:
|
||||
context: .
|
||||
target: build
|
||||
args:
|
||||
- "DOCKER_UID=${DOCKER_UID:-1000}"
|
||||
volumes:
|
||||
- .:/app
|
||||
depends_on:
|
||||
- database
|
||||
profiles: [php]
|
||||
|
||||
database:
|
||||
image: mariadb:10
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${DOCKER_MYSQL_CPUS:-0}"
|
||||
memory: "${DOCKER_MYSQL_MEMORY:-0}"
|
||||
volumes:
|
||||
- db-data:/var/lib/mysql
|
||||
|
||||
env_file:
|
||||
- .env
|
||||
labels:
|
||||
- "traefik.enabled=false"
|
||||
environment:
|
||||
MYSQL_RANDOM_ROOT_PASSWORD: true
|
||||
profiles: [database]
|
||||
|
||||
volumes:
|
||||
db-data: {}
|
||||
|
||||
networks:
|
||||
web:
|
||||
external: true
|
||||
name: traefik_proxy
|
111
tests/snapshots/output/drupal-localgov/run
Executable file
111
tests/snapshots/output/drupal-localgov/run
Executable file
|
@ -0,0 +1,111 @@
|
|||
#!/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
|
||||
|
||||
|
||||
}
|
||||
|
||||
# Run a command within the php container.
|
||||
function cmd {
|
||||
docker compose exec php "${@}"
|
||||
}
|
||||
|
||||
|
||||
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 start {
|
||||
cp -v --no-clobber .env.example .env
|
||||
|
||||
docker compose up -d
|
||||
}
|
||||
|
||||
|
||||
function stop {
|
||||
docker compose down
|
||||
}
|
||||
|
||||
|
||||
function test:commit {
|
||||
|
||||
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
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
[[ -f composer.json && ! -d vendor ]] && composer install
|
||||
|
||||
eval "$@"
|
|
@ -0,0 +1,4 @@
|
|||
# Do not edit this file. It is automatically generated by https://www.oliverdavies.uk/build-configs.
|
||||
|
||||
max_vars_input = 1000
|
||||
memory_limit = 128M
|
Loading…
Reference in a new issue