From 832654f582cde8fff2aaf0ea96c452e4b32d2afd Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Mon, 27 Oct 2025 12:46:19 +1300 Subject: [PATCH 01/14] Updating to latest version of things --- .gitignore | 1 + drupal/.skpr/package/cli/Dockerfile | 4 ++-- drupal/.skpr/package/compile/Dockerfile | 5 +---- drupal/.skpr/package/compile/settings.php | 8 ++++---- drupal/.skpr/package/fpm/Dockerfile | 4 ++-- drupal/.skpr/package/nginx/Dockerfile | 4 ++-- 6 files changed, 12 insertions(+), 14 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9f11b75 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ diff --git a/drupal/.skpr/package/cli/Dockerfile b/drupal/.skpr/package/cli/Dockerfile index b9ffb37..b2fa12e 100644 --- a/drupal/.skpr/package/cli/Dockerfile +++ b/drupal/.skpr/package/cli/Dockerfile @@ -1,7 +1,7 @@ ARG COMPILE_IMAGE=scratch -FROM ${COMPILE_IMAGE} as build +FROM ${COMPILE_IMAGE} AS build -FROM skpr/php-cli:7.4-1.x +FROM skpr/php-cli:8.3-v2-stable ARG SKPR_VERSION ENV SKPR_VERSION=$SKPR_VERSION COPY --chown=skpr:skpr --from=build /data /data diff --git a/drupal/.skpr/package/compile/Dockerfile b/drupal/.skpr/package/compile/Dockerfile index bbfd00d..526ac47 100644 --- a/drupal/.skpr/package/compile/Dockerfile +++ b/drupal/.skpr/package/compile/Dockerfile @@ -1,4 +1,4 @@ -FROM skpr/php-cli:7.4-1.x as build +FROM skpr/php-cli:8.3-v2-stable AS build ADD .skpr/package/compile/composer.json composer.json RUN composer install --prefer-dist @@ -7,6 +7,3 @@ ADD .skpr/package/compile/settings.php app/sites/default/settings.php ADD .skpr/package/compile/services.yml app/sites/default/services.yml RUN mkdir /data/config-export - -FROM skpr/php-fpm:7.4-1.x as run -COPY --chown=skpr:skpr --from=build /data /data diff --git a/drupal/.skpr/package/compile/settings.php b/drupal/.skpr/package/compile/settings.php index 0f85f3d..baea8f5 100644 --- a/drupal/.skpr/package/compile/settings.php +++ b/drupal/.skpr/package/compile/settings.php @@ -20,17 +20,17 @@ $config['cron_safe_threshold'] = '0'; $settings['file_public_path'] = 'sites/default/files'; -$config['system.file']['path']['temporary'] = '/mnt/temporary'; -$settings['file_private_path'] = '/mnt/private'; +$config['system.file']['path']['temporary'] = $skpr->get('mount.temporary', '/tmp');; +$settings['file_private_path'] = $skpr->get('mount.private', '/data/app/sites/default/files/private');; -$settings['hash_salt'] = !empty($settings['hash_salt']) ? $settings['hash_salt'] : 'xxxxxxxxxxxxxxxxxxxx'; +$settings['hash_salt'] = $skpr->get('drupal.hash_salt', 'xxxxxxxxxxxxxxxxxxxxxxx'); $settings['trusted_host_patterns'][] = '^127\.0\.0\.1$'; foreach ($skpr->hostNames() as $hostname) { $settings['trusted_host_patterns'][] = '^' . preg_quote($hostname) . '$'; } -$config['prometheus_exporter_token_access.settings']['access_token'] = $skpr->get('skpr.token') ?: ''; +$config['prometheus_exporter_token_access.settings']['access_token'] = $skpr->get('skpr.token', ''); $config['elasticsearch_connector.cluster.default']['url'] = $skpr->get('elasticsearch.writer.endpoint', 'https://localhost:9200'); $config['elasticsearch_connector.cluster.default']['options']['username'] = $skpr->get('elasticsearch.writer.username', 'admin'); diff --git a/drupal/.skpr/package/fpm/Dockerfile b/drupal/.skpr/package/fpm/Dockerfile index e199177..c5306ef 100644 --- a/drupal/.skpr/package/fpm/Dockerfile +++ b/drupal/.skpr/package/fpm/Dockerfile @@ -1,7 +1,7 @@ ARG COMPILE_IMAGE=scratch -FROM ${COMPILE_IMAGE} as build +FROM ${COMPILE_IMAGE} AS build -FROM skpr/php-fpm:7.4-1.x +FROM skpr/php-fpm:8.3-v2-stable ARG SKPR_VERSION ENV SKPR_VERSION=$SKPR_VERSION COPY --chown=skpr:skpr --from=build /data /data diff --git a/drupal/.skpr/package/nginx/Dockerfile b/drupal/.skpr/package/nginx/Dockerfile index 747174f..a57e8fa 100644 --- a/drupal/.skpr/package/nginx/Dockerfile +++ b/drupal/.skpr/package/nginx/Dockerfile @@ -1,5 +1,5 @@ ARG COMPILE_IMAGE=scratch -FROM ${COMPILE_IMAGE} as build +FROM ${COMPILE_IMAGE} AS build -FROM skpr/nginx:1.x +FROM skpr/nginx-drupal:v3-stable COPY --chown=skpr:skpr --from=build /data /data From 2b22b3731af1ca83dffaf139c3ab597f7f0db9ba Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Tue, 6 Jan 2026 11:26:37 +1300 Subject: [PATCH 02/14] Refactoring repo to match how we would really set it up. Fixing issues with docker-compose. Updating images and username/password pairs --- .gitignore | 1 + drupal/.gitignore | 11 +++++++++++ .../compile => app/sites/default}/services.yml | 0 .../compile => app/sites/default}/settings.php | 4 ++-- .../{.skpr/package/compile => }/composer.json | 17 +++++++++-------- drupal/docker-compose.yml | 15 +++++++-------- 6 files changed, 30 insertions(+), 18 deletions(-) create mode 100644 drupal/.gitignore rename drupal/{.skpr/package/compile => app/sites/default}/services.yml (100%) rename drupal/{.skpr/package/compile => app/sites/default}/settings.php (93%) rename drupal/{.skpr/package/compile => }/composer.json (81%) diff --git a/.gitignore b/.gitignore index 9f11b75..3ad1afd 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea/ +.env diff --git a/drupal/.gitignore b/drupal/.gitignore new file mode 100644 index 0000000..67fab75 --- /dev/null +++ b/drupal/.gitignore @@ -0,0 +1,11 @@ +app/ +bin/ +composer.lock +config-export/ +recipes/ +vendor/ +.editorconfig +.gitattributes + +!app/sites/default/settings.php +!app/sites/default/services.yml diff --git a/drupal/.skpr/package/compile/services.yml b/drupal/app/sites/default/services.yml similarity index 100% rename from drupal/.skpr/package/compile/services.yml rename to drupal/app/sites/default/services.yml diff --git a/drupal/.skpr/package/compile/settings.php b/drupal/app/sites/default/settings.php similarity index 93% rename from drupal/.skpr/package/compile/settings.php rename to drupal/app/sites/default/settings.php index baea8f5..ce461fa 100644 --- a/drupal/.skpr/package/compile/settings.php +++ b/drupal/app/sites/default/settings.php @@ -13,8 +13,8 @@ $databases['default']['default'] = array( 'driver' => 'mysql', 'database' => $skpr->get('mysql.default.database') ?: 'local', - 'username' => $skpr->get('mysql.default.username') ?: 'drupal', - 'password' => $skpr->get('mysql.default.password') ?: 'drupal', + 'username' => $skpr->get('mysql.default.username') ?: 'local', + 'password' => $skpr->get('mysql.default.password') ?: 'local', 'host' => $skpr->get('mysql.default.proxy') ?: '127.0.0.1', ); diff --git a/drupal/.skpr/package/compile/composer.json b/drupal/composer.json similarity index 81% rename from drupal/.skpr/package/compile/composer.json rename to drupal/composer.json index fc6c03b..fff5ca3 100644 --- a/drupal/.skpr/package/compile/composer.json +++ b/drupal/composer.json @@ -11,13 +11,13 @@ ], "require": { "composer/installers": "^1.9", - "drupal/core-composer-scaffold": "^9.1", - "drupal/core-project-message": "^9.1", - "drupal/core-recommended": "^9.1", - "drupal/elasticsearch_connector": "^7.0@dev", - "drupal/search_api": "^1.18", - "drush/drush": "^10", - "skpr/config": "^2.0-beta2" + "drupal/core-composer-scaffold": "^11.2", + "drupal/core-project-message": "^11.2", + "drupal/core-recommended": "^11.2", + "drupal/search_api_opensearch": "^2.5", + "drupal/skpr_logs": "^1.0", + "drush/drush": "^13", + "skpr/config": "^3.0" }, "conflict": { "drupal/drupal": "*" @@ -30,7 +30,8 @@ "allow-plugins": { "composer/installers": true, "drupal/core-composer-scaffold": true, - "drupal/core-project-message": true + "drupal/core-project-message": true, + "php-http/discovery": true } }, "extra": { diff --git a/drupal/docker-compose.yml b/drupal/docker-compose.yml index cc317fd..53f5d91 100644 --- a/drupal/docker-compose.yml +++ b/drupal/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3" - services: ################## @@ -7,7 +5,7 @@ services: ################## nginx: - image: skpr/nginx-drupal:dev-v2-latest + image: skpr/nginx-drupal:dev-v3-latest ports: - 8080:8080 - 3306:3306 @@ -17,7 +15,7 @@ services: - ./:/data php-fpm: - image: skpr/php-fpm:8.0-dev-v2-latest + image: skpr/php-fpm:8.3-dev-v2-latest network_mode: service:nginx environment: - PHP_IDE_CONFIG=serverName=localhost @@ -29,7 +27,7 @@ services: ################## php-cli: - image: skpr/php-cli:8.0-dev-v2-latest + image: skpr/php-cli:8.3-dev-v2-latest command: /bin/bash -c "sleep infinity" network_mode: service:nginx environment: @@ -43,14 +41,15 @@ services: mysql-default: # For "skpr mysql pull dev" to get the latest image. - image: xxxxxxxxx.dkr.ecr.ap-southeast-2.amazonaws.com/skpr-project/mysql:dev-default-latest + # You can replace the environment variables here with hard-coded values. + image: ${ECR_ID:-xxxxxx}.dkr.ecr.ap-southeast-2.amazonaws.com/${SKPR_PROJECT:-skpr-project}/mysql/dev:default-latest network_mode: service:nginx ################## # Services ################## - mailhog: - image: mailhog/mailhog + mailpit: + image: axllent/mailpit ports: - 8025:8025 From 7e6e2747b26436f5d07e2ac6f0e93c5459ffc4d3 Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 09:42:57 +1300 Subject: [PATCH 03/14] Final updates --- drupal/.gitignore | 1 + drupal/app/sites/default/settings.php | 2 ++ 2 files changed, 3 insertions(+) diff --git a/drupal/.gitignore b/drupal/.gitignore index 67fab75..1424c6f 100644 --- a/drupal/.gitignore +++ b/drupal/.gitignore @@ -6,6 +6,7 @@ recipes/ vendor/ .editorconfig .gitattributes +.php/ !app/sites/default/settings.php !app/sites/default/services.yml diff --git a/drupal/app/sites/default/settings.php b/drupal/app/sites/default/settings.php index ce461fa..08ac25d 100644 --- a/drupal/app/sites/default/settings.php +++ b/drupal/app/sites/default/settings.php @@ -18,6 +18,8 @@ 'host' => $skpr->get('mysql.default.proxy') ?: '127.0.0.1', ); +$databases['default']['default']['pdo'][PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = false; + $config['cron_safe_threshold'] = '0'; $settings['file_public_path'] = 'sites/default/files'; $config['system.file']['path']['temporary'] = $skpr->get('mount.temporary', '/tmp');; From d4e8a2317a440f26cc8798661ffa6ccf9edb66a3 Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:03:41 +1300 Subject: [PATCH 04/14] Adding workflow for deploying drupal automatically --- .github/workflows/drupal_dev.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/drupal_dev.yml diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml new file mode 100644 index 0000000..1785626 --- /dev/null +++ b/.github/workflows/drupal_dev.yml @@ -0,0 +1,23 @@ +name: Drupal Dev + +on: + push: + branches: + - main + paths: + - 'drupal/**' + +concurrency: + group: drupal-dev + cancel-in-progress: true + +jobs: + deploy: + uses: skpr/gh-workflows/.github/workflows/deploy.yml@main + secrets: + skpr_username: ${{ secrets.SKPR_USERNAME }} + skpr_password: ${{ secrets.SKPR_PASSWORD }} + with: + env: dev + suspend_cron: false + post_deploy: 'drush si core/recipes/standard' From 0a6d93de924d6ef4d1dedf048eef8113c225385c Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:13:12 +1300 Subject: [PATCH 05/14] Sending up a build --- .github/workflows/drupal_dev.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml index 1785626..23a18d4 100644 --- a/.github/workflows/drupal_dev.yml +++ b/.github/workflows/drupal_dev.yml @@ -3,7 +3,7 @@ name: Drupal Dev on: push: branches: - - main + - update-drupal-example paths: - 'drupal/**' @@ -15,8 +15,8 @@ jobs: deploy: uses: skpr/gh-workflows/.github/workflows/deploy.yml@main secrets: - skpr_username: ${{ secrets.SKPR_USERNAME }} - skpr_password: ${{ secrets.SKPR_PASSWORD }} + skpr_username: ${{ secrets.SKPR_QA_USERNAME }} + skpr_password: ${{ secrets.SKPR_QA_PASSWORD }} with: env: dev suspend_cron: false From 963273f77c7bec21b055475ab5d9ec8445922dfc Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:27:03 +1300 Subject: [PATCH 06/14] Updating based on working directory --- .github/workflows/drupal_dev.yml | 37 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml index 23a18d4..5acd46a 100644 --- a/.github/workflows/drupal_dev.yml +++ b/.github/workflows/drupal_dev.yml @@ -7,17 +7,38 @@ on: paths: - 'drupal/**' +env: + SKPR_USERNAME: ${{ secrets.SKPR_QA_USERNAME }} + SKPR_PASSWORD: ${{ secrets.SKPR_QA_PASSWORD }} + concurrency: group: drupal-dev cancel-in-progress: true jobs: deploy: - uses: skpr/gh-workflows/.github/workflows/deploy.yml@main - secrets: - skpr_username: ${{ secrets.SKPR_QA_USERNAME }} - skpr_password: ${{ secrets.SKPR_QA_PASSWORD }} - with: - env: dev - suspend_cron: false - post_deploy: 'drush si core/recipes/standard' + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./drupal + steps: + - name: ⬇️ Checkout Code + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Setup skpr + uses: skpr/setup-action@v1 + + - name: Get version + id: version + run: | + version=$(git describe --tags --always) + echo "::notice:: Using version $version from git describe" + echo "version=$version" >> $GITHUB_OUTPUT + + - name: 🚀 Deploy + run: skpr deploy dev ${{ steps.version.outputs.version }} + + - name: 🧹 Post-deploy + run: skpr exec dev drush si core/recipes/standard From 9d74e7b12d79097416b3d908fb3d8b0c1e727522 Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:28:11 +1300 Subject: [PATCH 07/14] Around again --- .github/workflows/drupal_dev.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml index 5acd46a..a169460 100644 --- a/.github/workflows/drupal_dev.yml +++ b/.github/workflows/drupal_dev.yml @@ -1,11 +1,12 @@ name: Drupal Dev on: - push: - branches: - - update-drupal-example - paths: - - 'drupal/**' + pull_request: ~ +# push: +# branches: +# - update-drupal-example +# paths: +# - 'drupal/**' env: SKPR_USERNAME: ${{ secrets.SKPR_QA_USERNAME }} From 7577a646bb7a1d7f571bfb04fcf77d205424c368 Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:29:08 +1300 Subject: [PATCH 08/14] Around again --- .github/workflows/drupal_dev.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml index a169460..03da667 100644 --- a/.github/workflows/drupal_dev.yml +++ b/.github/workflows/drupal_dev.yml @@ -30,6 +30,8 @@ jobs: - name: Setup skpr uses: skpr/setup-action@v1 + env: + GH_TOKEN: ${{ github.token }} - name: Get version id: version From 36bb2828f9bf322ef88f4e30b866e91aac18cd41 Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:30:45 +1300 Subject: [PATCH 09/14] Don't forget to package --- .github/workflows/drupal_dev.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml index 03da667..5456cc9 100644 --- a/.github/workflows/drupal_dev.yml +++ b/.github/workflows/drupal_dev.yml @@ -40,6 +40,9 @@ jobs: echo "::notice:: Using version $version from git describe" echo "version=$version" >> $GITHUB_OUTPUT + - name: 📦 Package + run: skpr package ${{ steps.version.outputs.version }} + - name: 🚀 Deploy run: skpr deploy dev ${{ steps.version.outputs.version }} From 84498a00a0fb1e0ceae650b950c8fb938a96dbff Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:36:01 +1300 Subject: [PATCH 10/14] Updating to use the right file paths --- drupal/.skpr/package/compile/Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drupal/.skpr/package/compile/Dockerfile b/drupal/.skpr/package/compile/Dockerfile index 526ac47..1bfc4e6 100644 --- a/drupal/.skpr/package/compile/Dockerfile +++ b/drupal/.skpr/package/compile/Dockerfile @@ -1,9 +1,9 @@ FROM skpr/php-cli:8.3-v2-stable AS build -ADD .skpr/package/compile/composer.json composer.json -RUN composer install --prefer-dist +ADD composer.json composer.json +RUN composer install --prefer-dist --no-progress -ADD .skpr/package/compile/settings.php app/sites/default/settings.php -ADD .skpr/package/compile/services.yml app/sites/default/services.yml +ADD app/sites/default/settings.php app/sites/default/settings.php +ADD app/sites/default/services.yml app/sites/default/services.yml -RUN mkdir /data/config-export +RUN mkdir config-export From 274eeb6945a811076018a55e6cf4b7c36d6e5a76 Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:50:05 +1300 Subject: [PATCH 11/14] Make deploy do an update instead --- .github/workflows/drupal_dev.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml index 5456cc9..d2ae2b5 100644 --- a/.github/workflows/drupal_dev.yml +++ b/.github/workflows/drupal_dev.yml @@ -25,8 +25,6 @@ jobs: steps: - name: ⬇️ Checkout Code uses: actions/checkout@v6 - with: - fetch-depth: 0 - name: Setup skpr uses: skpr/setup-action@v1 @@ -36,7 +34,7 @@ jobs: - name: Get version id: version run: | - version=$(git describe --tags --always) + version=$(git rev-parse --short HEAD) echo "::notice:: Using version $version from git describe" echo "version=$version" >> $GITHUB_OUTPUT @@ -47,4 +45,4 @@ jobs: run: skpr deploy dev ${{ steps.version.outputs.version }} - name: 🧹 Post-deploy - run: skpr exec dev drush si core/recipes/standard + run: skpr exec dev drush updb -y From 2f2e8dcb2fbf0b66180c2e017831b17b7bd42f8b Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 10:55:52 +1300 Subject: [PATCH 12/14] Use quotes for passing command --- .github/workflows/drupal_dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml index d2ae2b5..f957c33 100644 --- a/.github/workflows/drupal_dev.yml +++ b/.github/workflows/drupal_dev.yml @@ -45,4 +45,4 @@ jobs: run: skpr deploy dev ${{ steps.version.outputs.version }} - name: 🧹 Post-deploy - run: skpr exec dev drush updb -y + run: skpr exec dev "drush updb -y" From f9c581b6e0a293ce104a1b7a2008a9a60574cf89 Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 11:00:04 +1300 Subject: [PATCH 13/14] Only update Drupal when Drupal changes on main --- .github/workflows/drupal_dev.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/drupal_dev.yml b/.github/workflows/drupal_dev.yml index f957c33..332bf97 100644 --- a/.github/workflows/drupal_dev.yml +++ b/.github/workflows/drupal_dev.yml @@ -1,12 +1,11 @@ name: Drupal Dev on: - pull_request: ~ -# push: -# branches: -# - update-drupal-example -# paths: -# - 'drupal/**' + push: + branches: + - main + paths: + - 'drupal/**' env: SKPR_USERNAME: ${{ secrets.SKPR_QA_USERNAME }} From 3111b284e61cba77bdeb0d640d0af7c927224477 Mon Sep 17 00:00:00 2001 From: Nathan ter Bogt Date: Wed, 7 Jan 2026 12:13:27 +1300 Subject: [PATCH 14/14] Use 'mail' as the name in docker --- drupal/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drupal/docker-compose.yml b/drupal/docker-compose.yml index 53f5d91..347a5d3 100644 --- a/drupal/docker-compose.yml +++ b/drupal/docker-compose.yml @@ -49,7 +49,7 @@ services: # Services ################## - mailpit: + mail: image: axllent/mailpit ports: - 8025:8025