Skip to content

Releases: drevops/scaffold

1.21.0

10 May 21:13
Compare
Choose a tag to compare

What's new since 1.20.0

🐳 Docker

New features

None

Fixes

None

Updates

πŸ’§ Drupal

New features

None

Updates

Fixes

  • Fixed a typo in env vars passed to containers in ahoy config + tests. @AlexSkrypnyk (#1291)
  • Fixed outdated PHP plaform version in the composer.json.

πŸ€– CI and workflow

New features

  • [#1315] Added Drupal config dir auto-discovery during provisioning to be based on setting.php. @AlexSkrypnyk (#1316)
  • [#1272] Added Drupal temp and private file dirs passed through env vars DRUPAL_PRIVATE_FILES and DRUPAL_TEMPORARY_FILES. @AlexSkrypnyk (#1314)
  • [#1056] Added support for a webhook notification. @tannguyen04 (#1273)
  • [#768] Added checking for bin existence in scripts. @AlexSkrypnyk (#1276)
  • [#1305] Added tests for Renovate config. @AlexSkrypnyk (#1306)
  • Added Renovate support for updating container images set through variables in docker-compose.yml.

Fixes

Updates

  • Updated CI Runner to 24.4.0. @AlexSkrypnyk (#1277)
  • Updated eps1lon/actions-label-merge-conflict to v3.
  • Updated self-hosted Renovate to major version 37.342.1.
  • Updated output from provision script to be more structural. @AlexSkrypnyk (#1317)

🧩 Integrations

Lagoon

None

Acquia

None

πŸ“ƒ Documentation

Scaffold

Full Changelog: 1.20.0...1.21.0

@AlexSkrypnyk, @renovate, @renovate[bot] and @tannguyen04

1.20.0

16 Apr 11:12
Compare
Choose a tag to compare

What's new since 1.19.0

In this release, the repository was renamed from DrevOps to Scaffold in the preparation to Scaffold 2.0

🐳 Docker

New features

Fixes

None

Updates

πŸ’§ Drupal

New features

Fixes

Updates

πŸ€– CI and workflow

New features

Updates

Fixes

🧩 Integrations

Lagoon

Acquia

None

πŸ“ƒ Documentation

Scaffold

Full Changelog: 1.19.0...1.20.0

@AlexSkrypnyk, @ivangrynenko, @renovate, @renovate[bot], @richardgaunt and @tannguyen04

1.19.0

16 Feb 00:00
Compare
Choose a tag to compare

Release 1.19.0 introduces updates across Docker, Drupal, CI workflows, and DrevOps.

Key highlights include upgrading to PHP 8.2, Docker images to version 24.1.0, and improved compatibility with Solr 8. Added Hadolint to CI for better linting, fixed CI issues, and updated CI configurations for smoother workflows.

Additionally, DrevOps has seen enhancements like moving Installer and DevTool to its own repositories and updating documentation practices.

What's new since 1.18.0

πŸ’§ Drupal

New features

None

Fixes

None

Updates

🐳 Docker

New features

None

Fixes

None

Updates

πŸ€– CI and workflow

New features

Fixes

Updates

🧩 Integrations

Lagoon

Acquia

None

πŸ“ƒ Documentation

None

DrevOps

Full Changelog: 1.18.0...1.19.0

@AlexSkrypnyk, @renovate and @renovate[bot]

1.18.0 Documentation, Rector, image updates

22 Nov 05:17
Compare
Choose a tag to compare

This release focuses on enhancing DevOps workflows and Drupal integration: it introduces the devtool CLI for DrevOps maintenance, Rector for CI, and updates Docker to v23.11.0.

Notably, it allows custom DREVOPS_LOCALDEV_URL settings, aligns composer.json with drupal-project, and renames several environment variables for clarity.

Additionally, it removes one-time login link generation in Drupal and obsolete modules, and updates stage_file_proxy to v2. The release also improves documentation and consolidates shellcheck exceptions for portability.

What's new since 1.17.4

🐳 Docker

New features

Fixes

None

Updates

πŸ’§ Drupal

New features

None

Fixes

Updates

πŸ€– CI and workflow

New features

Updates

  • Removed 'ahoy clean' in favour of ahoy reset and ahoy reset hard. @AlexSkrypnyk (#1079)
  • Renamed environmwent varibales @AlexSkrypnyk (#1075):
    • DREVOPS_DRUPAL_THEME -> DRUPAL_THEME
    • DREVOPS_ENVIRONMENT -> DRUPAL_ENVIRONMENT
    • DREVOPS_DRUPAL_PROFILE -> DRUPAL_PROFILE
    • DREVOPS_REDIS_ENABLED -> DRUPAL_REDIS_ENABLED
    • DREVOPS_CLAMAV_ENABLED -> DRUPAL_CLAMAV_ENABLED
    • CLAMAV_MODE -> DRUPAL_CLAMAV_MODE
    • DREVOPS_DRUPAL_SITE_EMAIL -> DRUPAL_SITE_EMAIL
    • DREVOPS_DRUPAL_DB_SANITIZE_PASSWORD -> DREVOPS_PROVISION_SANITIZE_DB_PASSWORD
    • DREVOPS_DRUPAL_UNBLOCK_ADMIN -> DRUPAL_UNBLOCK_ADMIN
    • DREVOPS_DRUPAL_DB_SANITIZE_REPLACE_USERNAME_WITH_EMAIL -> DREVOPS_PROVISION_SANITIZE_DB_REPLACE_USERNAME_WITH_EMAIL
    • DREVOPS_DRUPAL_DB_SANITIZE_ADDITIONAL_FILE -> DREVOPS_DRUPAL_DB_SANITIZE_ADDITIONAL_FILE

Fixes

None

🧩 Integrations

Lagoon

None (upstream fixes already included in images 23.11.0).

Acquia

None

πŸ“ƒ Documentation

  • Added several documentation sections.

DrevOps

Full Changelog: 1.17.4...1.18.0

@AlexSkrypnyk, @renovate and @renovate[bot]

Updated Docker images to v23.10.0

13 Oct 22:38
Compare
Choose a tag to compare

Fixed installer.

04 Oct 09:08
Compare
Choose a tag to compare

What's new since 1.17.0

Full Changelog: 1.17.0...1.18.0

@AlexSkrypnyk

Coverage, simple tooling config and `provision` command

04 Oct 01:15
Compare
Choose a tag to compare

This release is concentrated around stability and code quality: it brings code coverage, tooling config simplifactions and rename of install-site to provision command.

What's new since 1.16.1

🐳 Docker

New features

None

Fixes

Updates

πŸ’§ Drupal

New features

Fixes

None

Updates

πŸ€– CI and workflow

New features

Updates

  • Renamed site-install to provision and updated env variables. @AlexSkrypnyk (#966) πŸš€πŸš€πŸš€
    • DREVOPS_DRUPAL_INSTALL_FROM_PROFILE βž” DREVOPS_PROVISION_USE_PROFILE
    • DREVOPS_DRUPAL_INSTALL_OVERRIDE_EXISTING_DB βž” DREVOPS_PROVISION_OVERRIDE_DB
    • DREVOPS_DRUPAL_INSTALL_DB_SANITIZE_SKIP βž” DREVOPS_PROVISION_SANITIZE_DB_SKIP
    • DREVOPS_DRUPAL_INSTALL_USE_MAINTENANCE_MODE βž” DREVOPS_PROVISION_USE_MAINTENANCE_MODE
    • DREVOPS_DRUPAL_LOGIN_UNBLOCK_ADMIN βž” DREVOPS_DRUPAL_UNBLOCK_ADMIN
    • DREVOPS_TASK_PURGE_CACHE_ACQUIA_SKIP βž” DREVOPS_PURGE_CACHE_ACQUIA_SKIP
    • DREVOPS_DRUPAL_INSTALL_ENVIRONMENT βž” DREVOPS_PROVISION_ENVIRONMENT
  • Simplified testing tools to use config files. @AlexSkrypnyk (#1016) πŸš€πŸš€πŸš€
  • Simplified linting tools to use config files. @AlexSkrypnyk (#1018) πŸš€πŸš€πŸš€
  • Switched to the renamed CI runner image (drevops/ci-runner). @AlexSkrypnyk (#1024)
  • Update toshimaru/auto-author-assign action to v2 @renovate (#1009)
  • Renamed files with example suffix to use default suffix. @AlexSkrypnyk (#994)
  • Updated email notification script to use sendmail before using mail. @AlexSkrypnyk (#983)

Fixes

🧩 Integrations

Lagoon

None (upstream fixes already included in images 23.9.0).

Acquia

πŸ“ƒ Documentation

DrevOps

Full Changelog: 1.16.1...1.17.0

@AlexSkrypnyk, @renovate and @renovate[bot]

Fixes for Installer, Acquia integrations and site install.

05 Sep 23:57
Compare
Choose a tag to compare

DrevOps has moved to git-flow!
Releases and hotfixes are pushed to main branch, while development takes place in develop branch.
This allows to easier manage hotfixes and release more often.

What's new since 1.16.0

🐳 Docker

New features

None

Fixes

None

Updates

πŸ’§ Drupal

New features

None

Fixes

Updates

πŸ€– CI and workflow

New features

  • Replaced PHP Email notification script with shell-based version. @AlexSkrypnyk (#956)
  • Included .env into artifact deployment. This allows to control workflow from a single config file rather then having those variables being injected into provider's environment. @AlexSkrypnyk

Updates

Fixes

🧩 Integrations

Lagoon

None

Acquia

πŸ“ƒ Documentation

None

DrevOps

  • Refactored site-install to use drush:deploy (when config is provided) πŸš€ πŸš€ πŸš€ @AlexSkrypnyk
    • Introduced DREVOPS_DRUPAL_INSTALL_ENVIRONMENT variable passed to the custom scripts. This allows to avoid querrying Drupal's config to get the current env type in the custom shell scripts. πŸš€
    • Added passing of DREVOPS_DRUPAL_INSTALL_OVERRIDE_EXISTING_DB to the custom scripts if the DB was refreshed. This allows to know when the database was refreshed so that custom scripts could act appropriately. πŸš€
    • Changed custom scripts to contain 2-digit suffix. This allows to order custom scripts better.
  • Fixed several variable names and descriptions. @AlexSkrypnyk (#955)
  • Added shfmt linting of scripts and fixed formatting. @AlexSkrypnyk
  • Updated DREVOPS_DEBUG to be set by 1 rather than any value being present. This allows to cascade the override of the value set in "higher" configs (e.g., Lagoon's per-project value can be 1 but per-env can be set to 0). This approach is used for all variables in DrevOps. @AlexSkrypnyk (#964)
  • Updated color messages to be based on the TERM's dumb value. @AlexSkrypnyk (#975)
  • Installer:
  • DrevOps tests:
    • Renamed test files for consistency.
    • Refactored site install tests and added a tests runner helper script. @AlexSkrypnyk

Full Changelog: 1.16.0...1.16.1

@AlexSkrypnyk, @richardgaunt

Drupal 10, Docker Compose 2, more tools and DrevOps test optimisations

30 Jul 12:14
Compare
Choose a tag to compare

🐳 Docker

New features

  • Added support for Docker Compose v2 πŸš€πŸš€πŸš€.
  • Made docker-compose.yml version-less.
  • Added support for setting timezone in containers. Set timezone using DREVOPS_TZ variable in .env file. (#939)
  • Added removing of orphan containers when removing images.
  • Added running of the mariadb schema updates before capturing DB in a Docker image when exporting DB image.

Fixes

  • Fixed missing user to run mariadb container. (#899)
  • Fixed DREVOPS_DB_DOCKER_IMAGE_BASE not being pinned to a version. This now allows to choose a specific version of the DB image.
  • Fixed local emails not being sent to Mailhog.

Updates

  • Updated images to 23.7.0.
  • Re-pinned Chrome image to 111.0 and pinned local Chrome override image.
  • Replaced wait-for-dependencies container image with a pinned version of drevops/docker-wait-for-dependencies - DrevOps-owned image.
  • Renamed 'default.docker-compose.override.yml' to 'docker-compose.override.example.yml' to group this file with docker-compose.yml.
  • Renamed 'default.env.local' to '.env.local.example' to group this file with .env.
  • Moved Docker network stub creation to CI config.
  • Added back mounting volumes from pygmy.

πŸ’§ Drupal

New features

  • Upgraded to Drupal 10 πŸš€πŸš€πŸš€.
  • Added full Solr support via SearchAPI πŸš€. (#859)
  • Added support for Redis service πŸš€. (#858)
  • Added ClamAV support πŸš€.
  • Added "minimum-stability": "stable" and "prefer-stable": true stability flags to composer.json.
  • Added support for composer packages authentication with GitHub token using GITHUB_TOKEN variable.
  • Moved settings tests to be available for use in consumer sites.

Fixes

  • Fixed automated cron should not run in CI. (#845)
  • Fixed Shield configs in PROD environment: now allows to login to PROD without any env vars set. (#885)
  • Fixed node_modules not being ignored for themes.

Updates

  • Moved module-specific Drupal settings into separate files.
  • Renamed docroot to web and made it configurable in installer πŸš€. (#544)
  • Removed custom generation of DB settings in favour of using database settings set in settings.php.
  • Reverted ScriptHandler.php to the version from drupal-composer/drupal-project.
  • Updated ScriptHandler.php to handle Drupal 10.1.x deprecations (see drupal-composer/drupal-project#626)
  • Updated header color in a custom theme to better show that this is a custom override.

πŸ€– CI and workflow

New features

  • Added support for PHPStan πŸš€.
  • Added support for PHPMD πŸš€. (#908)
  • Added support for Twigcs πŸš€.
  • Added release drafter configuration πŸš€. (#789)
  • Added support for setting tags from environment variables in tests (e.g. setting DREVOPS_TEST_UNIT_GROUP=wip1 will run unit tests tagged with wip1).
  • Added new coloured verbose messages to all scripts.
  • Show DB image in the ahoy info.
  • Added 3 seconds waiting if Ahoy confirmation is suppressed.
  • Added build time. (#835)
  • Allow to disable lint tools by settings their targets to empty.
  • Allow to pass DREVOPS_LINT_TYPE as a variable.

Updates

  • Removed ahoy calls from CI πŸš€. This was the last step for a complete separation of scripts from environment-based callers (ahoy is for local, CI config for CI, lagoon.yml for Lagoon etc).
  • Pinned CI builder to 23.7.0. The image always must be pinned and updated manually to avoid breakages caused by upstream changes (#941)
  • Removed flag to switch-off Compose lock file validation. Composer file always have to be valid.
  • Made Lagoon webhook GitHub Actions handler configurable.
  • Updated database dump filenames timestamp format to be db_YYYYMMDD_HHMMSS.sql.
  • Added phpcs exclusion for tests.
  • Updated release drafter to use MINOR version as the next one.
  • Simplified artifact deployment gitignore config to deploy full code artifact.
  • Separated test scripts into a router script: a single test.sh that calls other test-*.sh scripts, like test-unit.sh etc.
  • Simplified DB download script to use globally defined environment variables.
  • Separated lint scripts into a router script: a single lint.sh that calls other lint-*.sh scripts, like lint-be.sh etc.
  • Simplified deploy scripts to use globally defined environment variables.
  • Renamed DREVOPS_GITHUB_TOKEN to GITHUB_TOKEN as this is a widely-used env var name.
  • Separated notification scripts into a router script: a single notify.sh that calls other notify-*.sh scripts, like notify-jira.sh, notify-email.sh etc.
  • Renamed DOCKER_USERNAME to DOCKER_USER in all scripts.
  • Renamed DREVOPS_AHOY_CONFIRM_RESPONSE to AHOY_CONFIRM_RESPONSE.
  • Updated scripts to use full drush commands and improved site install information. (#922)
  • Updated front-end linter bypass logic and messages.
  • Updated test runner bypass logic and messages.
  • Moved DREVOPS_DEV_VOLUMES_MOUNTED to commands in CI config.

Fixes

  • Fixed Renovate configuration when it tries to update php version in composer.json. (#798)
  • Fixed incorrect ahoy doctor status for when pygmy is not running.
  • Fixed ahoy doctor incorrectly assessing loaded SSH key.
  • Fixed SequelAce help string being shown in ahoy info if it is available on host.
  • Fixed missing test artefacts and reports in CI configuration.
  • Fixed BDD smoke tests not running in CI.
  • Fixed second confirm question for 'ahoy reset'.
  • Fixed github label creation script.
  • Fixed JIRA deployment notification.

🧩 Integrations

Lagoon

  • Added support for release/* and hotifx/* branches to be considered a test environment type in Lagoon.
  • Fixed deployment to Lagoon when no DREVOPS_* env variables were defined. (#805)
  • Simplified Lagoon configuration to use router scripts.
  • Updated Drush aliases to support Lagoon environments.

Acquia

  • Simplified Acquia variables to use globally defined environment variables.

πŸ“ƒ Documentation

  • Added multi-version docs publishing πŸš€. (#889)
  • Updated feature list and added documentation for several sections.
  • Simplified intro in README.txt (#833)
  • Moved per-project documentation under docs dir.

DrevOps

  • Moved DrevOps to semantic versioning πŸš€.
  • Added set -u to to all scripts to avoid unbound variables.
  • Moved variables extractor into own package. (#814)
  • Added linting of Dockerfiles. (#819)
  • Install script:
    • Fixed site tokens not being processed in GitHub pull request template.
    • Renamed install.php to installer.php and moved away from root.
    • Move installer unit tests to the installer directory.
    • Added functional tests scaffold and updated to PHPUnit 10 for installer.
    • Updated installer main branch to 'main' in CI config.
  • DrevOps tests:
    • Fixed spellchecker dictionary and added validation for it. (#817)
    • Fixed bats test framework setup to support a different temp dir.
    • Moved to using bats NodeJs library instead of host-installed binary. (#745)
    • Replaced using of real tokens with test tokens in tests.
    • Simplified utilities tests.
    • Renamed test assertions.
    • Updated docker-compose.yaml tests to support different sorting.
    • Improved test speed by using fast BDD tests.
    • Skipping CI tests that can run only in CI.

9.x-1.15 New variables system, PHP 8.1, self-hosted RenovateBot, improved integrations.

19 Oct 04:29
Compare
Choose a tag to compare

🐳 Docker

  • Updated from PHP 7 to PHP 8.1 and optimised configuration files.
  • Updated images to the 22.4.1 version.
  • Renamed Docker files to use .dockerfile extension (i.e. Dockerfile.php -> php.dockerfile).
  • Added auth.json to a list of included files into Docker build.
  • Fixed forwarding emails to Mailhog locally.

πŸ’§ Drupal

  • Upgraded to Drush 11.
  • Added unit tests for settings: testing the resulting settings based on environment type and set environment variables.
  • Added support for settings to be included from the includes directory (ueful to store contrib module settings).
  • Added installer-path support for custom modules and themes in composer.json.
  • Fixed site salt value in settings.
  • Updated Shield settings to allow enabling from UI.
  • Updated theme scaffold to use Olivero as a base theme.
  • Updated theme npm run watch to run dev compilation.
  • Updated theme NPM packages to the latest versions.
  • Moved Livereload inclusion into theme.
  • Switched from non-supported node-sass to sass ((Dart SASS)[https://sass-lang.com/dart-sass]) in theme

πŸ€– CI and workflow

New features

  • New varibles system to clearly separate between DrevOps, Drupal and 3rd-party variables:
    • DrevOps variables use DREVOPS_ prefix.
    • Drupal variables use DRUPAL_ prefix.
    • 3-rd party services variables stay as-is.
  • New site install logic and logging to prevent accidental environment overwrites and deletions.
  • New Drupal deployment mechanism using drush deploy.
  • New RenovateBot config (including self-hosted CI config) and removed dependencies.io.
  • New deployment scripts for GitHub, NewRelic and JIRA notifications.
  • New local Ahoy commands: commands can be added into .ahoy.local.yml which is automatically included int main Ahoy configuration and is excluded to be committed to the codebase.
  • New script to mirror code between branches.
  • New script to create GitHub labels. Used to configure repositories.
  • New GitHub action to auto-assign PR author.

Updates

  • Refactored scripts to use better logging output.
  • Added Drupal login and logout scripts.
  • Allow to skip unit, functional and kernel tests tagged with skipped group by providing envir9onment variables.
  • Added skipping of site installation with DREVOPS_DRUPAL_INSTALL_SKIP.
  • Removed DREVOPS_DRUPAL_CONFIG_LABEL as Drush 11 does not support it anymore.
  • Added validation of the docker compose configuration.
  • Moved network creation to run after composer validation.
  • Added variables to skip linting (DREVOPS_LINT_SKIP) and tests (DREVOPS_TEST_SKIP).
  • Added a flag to only build and export code DREVOPS_EXPORT_CODE_ONLY.
  • Updated PHPCS ruleset to not contain overrides. Any file-specific overrides (like delimiting comments) were moved into files.
  • Renamed master to main in branch references.
  • Moved Behat screenshost directory under tests/bats/screenshots locally.
  • Added support for Behat test to pass tags from the env variable.
  • Added Behat test reports to CI: they can now be accessed via TEST tab.
  • Added copying email to username after sanitization.
  • Added Ahoy command to open DB in Sequel Ace.
  • Added ahoy doctor info to gather information about OS to make debugging easier.
  • Updated ahoy commands descriptions.

Fixes

  • Fixed DrevOps and Docker Compose env variables not being automatically passed to running containers from the host env. Allows to avoid specifying variables that need to be passed into containers.
  • Fixed skipping of BDD test re-runs when ran on local.
  • Fixed one-time Drupal link not shown on build.
  • Fixed DB Docker image not using base Docker image if it does not exist.
  • Fixed config_split warning during site install if it is not available.
  • Fixed only lint FE assets if FE theme has them and do not re-run FE assets compilation on host in CI to speed up build time.
  • Fixed .editorconfig being overridden on composer update.
  • Fixed deployment script to correctly handle deployment of skipped branches.
  • Fixed email not being passed to site install from profile during installation.
  • Fixed PHPCS ruleset to not scan .js files for uppercase TRUE/FALSE.
  • Fixed sanitized passwords not being set to a random password by default during site install.
  • Fixed failed deployments not failing CI.
  • Fixed incorrect Drush was used for retrieving a core version.

🧩 Integrations

Lagoon

  • Added backing up of DB before deployment to production in Lagoon.
  • Added support for specifying custom LagoonCLI version and Lagoon instance in Lagoon integration scripts.
  • Added support for LAGOON_PROJECT variable in .env.
  • Added showing of DrevOps variables during Lagoon rollout.
  • Added custom Lagoon task runner script.
  • Fixed Lagoon deployment failing if there are no environments.
  • Fixed sites installed from profile to handle DB override correctly in Lagoon.

Acquia

  • Fixed TARGET_ENV_REMAP variable in Acquia cache purge script.
  • Renamed code to artifact deployment type to push to Acquia.
  • Updated webhook deployment to allow specifying the curl method.
  • Updated notification hooks for Acquia.
  • Fixed sanitize script not working in non-prod environments.

πŸ“ƒ Documentation

  • Updated PR template to use checklist s instead of comments.
  • Simplified README.md file.
  • Added quickstart placeholder docs section.
  • Added docs publishing to docs.drevops.com.
  • Added a script to scan for shell variables and auto-generate docs.

Other

  • Updated condition check for all boolean variables: use explicit 1 for a truthful value. This is to allow overriding of the value without unsetting a variable.
  • Fixed unequal operator to be POSIX compliant in all scripts.
  • Moved workflow tests into a separate CI job to ease DrevOps maintenance.
  • Improvements in the DrevOps test system:
    • Updated Bats testing framework to Bats 1.7 and updated several helpers.
    • Updated Docker image workflow tests and added ARM support for tests.
    • Added DrevOps helpers test to the CI pipeline.
    • Updated Docker-Compose test fixtures.
  • Updated installer script:
    • Fixed theme discovery in installer.
    • Updated installer path to use https://install.drevops.com
    • Updated installer to use install from profile and override DB variables.
    • Fixed installer to remove deploy job CI config when an option without a deployment is selected.