Skip to content

Commit

Permalink
Add more snapshot tests
Browse files Browse the repository at this point in the history
  • Loading branch information
opdavies committed Dec 15, 2023
1 parent 680b72b commit ca8ffc5
Show file tree
Hide file tree
Showing 25 changed files with 824 additions and 0 deletions.
2 changes: 2 additions & 0 deletions run
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
49 changes: 49 additions & 0 deletions tests/snapshots/configs/drupal-commerce-kickstart.yaml
Original file line number Diff line number Diff line change
@@ -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 changes: 37 additions & 0 deletions tests/snapshots/configs/drupal-localgov.yaml
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/README.md
/.github/
12 changes: 12 additions & 0 deletions tests/snapshots/output/drupal-commerce-kickstart/.env.example
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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 changes: 45 additions & 0 deletions tests/snapshots/output/drupal-commerce-kickstart/.gitignore
Original file line number Diff line number Diff line change
@@ -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/
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ignore:
- DL3059
67 changes: 67 additions & 0 deletions tests/snapshots/output/drupal-commerce-kickstart/Dockerfile
Original file line number Diff line number Diff line change
@@ -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 /
Original file line number Diff line number Diff line change
@@ -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
Loading

0 comments on commit ca8ffc5

Please sign in to comment.