Releases: drevops/scaffold
1.21.0
What's new since 1.20.0
π³ Docker
New features
None
Fixes
None
Updates
- Update Container images to
v24.5.0
@renovate (#1303) - Update
clamav/clamav
Docker tag tov1.3.1
@renovate (#1274) - [#1297] Updated DB image to use versioned
mariadb-10.11-drupal
image.mariadb-drupal
is EOL. @AlexSkrypnyk (#1299) - [#1286] Removed support for
.env.local
fromdocker-compose.yml
. @AlexSkrypnyk (#1287)
π§ Drupal
New features
None
Updates
- Enforced strict types via PHPCS. @AlexSkrypnyk (#1282)
- Updated PHP packages to the latest versions. @AlexSkrypnyk (#1294)
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
andDRUPAL_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
- [#1298] Fixed CircleCI deployment branch regex. @AlexSkrypnyk (#1300)
- Fixed CircleCI test to use new HTTP header. @AlexSkrypnyk (#1309)
- Fixed CircleCI not logging in into Docker hub.
- Fixed CircleCI build failure if CodeCov token is not provided.
- Fixed formatting in CircleCI config. @AlexSkrypnyk (#1310)
- Fixed SSH setup not correctly processing
false
value from variable. @AlexSkrypnyk (#1288)(#1285) - [#1284] Excluded test files from the test coverage report. @AlexSkrypnyk (#1289)
- [#1279] Remove DB copy from
ahoy provision
. @AlexSkrypnyk (#1283) - [#1293] Simplified
DREVOPS_DB_DOCKER_IMAGE
toDREVOPS_DB_IMAGE
. @AlexSkrypnyk (#1295) - Fixed Twig CS Fixer cache file to be excluded from
.git
. - Fixed Rector scanning too many files.
Updates
- Updated CI Runner to
24.4.0
. @AlexSkrypnyk (#1277) - Updated
eps1lon/actions-label-merge-conflict
tov3
. - 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
- Updated docs to use "DrevOps Scaffold" when referencing "Scaffold" for clarity. @AlexSkrypnyk (#1319)
- Added a CI check for docs tests to validate that docs are up-to-date. @AlexSkrypnyk (#1318)
- [#1280] Fixed
Edit this page on GitHub
links to use the correct URL. @tannguyen04 (#1281)
Scaffold
- [#1307] Added linting for GHAs. @AlexSkrypnyk (#1308)
- [#1296] Removed references to "Docker" used in other meaning rather than a product. @AlexSkrypnyk (#1301)
- Added
SECURITY.md
andCONTRIBUTING.md
to the scaffold itself.
Full Changelog: 1.20.0...1.21.0
@AlexSkrypnyk, @renovate, @renovate[bot] and @tannguyen04
1.20.0
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
- [#1144] Added support for
.env.local
in docker-compose. @AlexSkrypnyk (#1196)
Fixes
None
Updates
π§ Drupal
New features
- [#1236] Moved provider settings in their own files. @AlexSkrypnyk (#1268)
Fixes
- [#1261] Removed the dependencies on the optional modules from the core module. @AlexSkrypnyk (#1267)
Updates
- [#944] Updated
ScriptHandler.php
to follow the latest version fromdrupal-project
. @AlexSkrypnyk (#1232)
π€ CI and workflow
New features
- [#1197] Moved DrevOps tests to GHA. π @AlexSkrypnyk (#1211)
- [#1108] Replaced Twigcs with Twig-cs-fixer. @tannguyen04 (#1201)
- Updated GitHub labels generation to contain state and PR based labels. @AlexSkrypnyk (#1241)
- Updated to the
drevops/git-artifact
version0.7
. @AlexSkrypnyk (#1252)
Updates
- [#934] Simplified
build.sh
in favour of ahoy and CI. π @AlexSkrypnyk (#1195) - Updated
drevops/behat-steps
to use the^2.2
vesion. @AlexSkrypnyk (#1208) - Update dependency
palantirnet/drupal-rector
to^0.20
@renovate (#1217) - [#1093] Added PHPMD exclusions for
_deploy.php
,_post_update.php
and.install
Drupal files. @tannguyen04 (#1203) - [#1214] Added script to find and load SSH keys. @AlexSkrypnyk (#1216), @richardgaunt (#1235)
- Removed Livereload support. @AlexSkrypnyk (#1194)
Fixes
- Fixed regex in CI configs for deployment branches filter. @ivangrynenko (#1263)
𧩠Integrations
Lagoon
- [#952] Updated Lagoon deployment script to use
variable update
. @richardgaunt (#1209) - [#1239] Fixed ClamAV service not being provisioned in Lagoon. @AlexSkrypnyk (#1240)
- [#942] Added lagoon wrapper to cmds. @richardgaunt (#1244)
- [#1248] Simplified LagoonCLI variables. @AlexSkrypnyk (#1255)
Acquia
None
π Documentation
- Replaced documentation to use Docusaurus. ππ @AlexSkrypnyk (#1249)
Scaffold
- [#1206] Renamed the repository from
DrevOps
to 'scaffold' and udpated references. πππ @AlexSkrypnyk (#1230) - [#1225] Moved consumer part of
README.md
to ownREADME.dist.md
file. @AlexSkrypnyk (#1226) - Updated tests to handle the removal of the
CODE_OF_CONDUCT.txt
file. @AlexSkrypnyk (#1227) - [#736] Added tests for
webhook
anddocker
deployment. @richardgaunt (#1257) - [#1213] Updated tests for notify scripts to use the step runner format. @richardgaunt (#1221)
- [#1260] Removed
DREVOPS_DB_DOWNLOAD_SSH_FILE
variable from.env.local.default
. @AlexSkrypnyk (#1266) - [#1259] Renamed
dispatch-webhook-lagoon.yml
toclose-pull-request.yml
. @AlexSkrypnyk (#1265) - [#1259] Renamed
.gitignore.deployment
to.gitignore.artifact
. @AlexSkrypnyk (#1264) - Fixed
www
replacement in URL installer. @tannguyen04 (#1251)
Full Changelog: 1.19.0...1.20.0
@AlexSkrypnyk, @ivangrynenko, @renovate, @renovate[bot], @richardgaunt and @tannguyen04
1.19.0
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
- Updated scaffold files to 9/1/2024. @AlexSkrypnyk (#1179)
- Updated to Solr 8. @AlexSkrypnyk (#1120)
π³ Docker
New features
None
Fixes
None
Updates
- Updated to PHP 8.2. @AlexSkrypnyk (#1117)
- Update Docker images to v24.1 (major) @renovate (#1155)
- [#1184] Unpinned APK packaged versions. @AlexSkrypnyk (#1185)
- [#1084] Temporary revert the ability to set
$DREVOPS_LOCALDEV_URL
from.env
file as some providers do not support double interpolation indocker-compose.yml
file. @AlexSkrypnyk (#1150) - Updated to Solr 8. @AlexSkrypnyk (#1120)
- Added tests for Redis requirements reporting. @AlexSkrypnyk (#1119)
- Removed Drush launcher and added drush script to aliases file. @AlexSkrypnyk (#1105)
- Updated settings file loader in settings unit tests to be compatible with Drupal 10.2. @AlexSkrypnyk (#1109)
π€ CI and workflow
New features
- [#1035] Added Hadolint to CI for consumer sites. @AlexSkrypnyk (#1151)
Fixes
- Fixed CI failing if no code coverage provided. @AlexSkrypnyk (#1167)
- Fixed PHPStan reporting on unmatched rules for the optional settings includes. @AlexSkrypnyk (#1149)
- Do not ignore
package-lock.json
in theme. @AlexSkrypnyk (#1134) - Replaced Codecov orb with a binary uploader. Useful for cases when orb is not available in org. @AlexSkrypnyk (#1121)
Updates
- [#1080] Reconciled more variables. @AlexSkrypnyk (#1188):
- Removed
$DREVOPS_DEPLOY_PROCEED
variable - Reconciled
$DREVOPS_DB_DOWNLOAD_ACQUIA_ENV
and$DREVOPS_DB_DOWNLOAD_LAGOON_BRANCH
into$DREVOPS_DB_DOWNLOAD_ENVIRONMENT
- Removed
- [#1187] Set
$DRUPAL_PROFILE
tostandard
. @AlexSkrypnyk (#1189) - Updated CircleCI to use the default Docker engine due to deprecations. @AlexSkrypnyk (#1157)
- [#1126] Updated working dir and workspace dir to reside in modifiable locations. @AlexSkrypnyk (#1138)
- Updated theme FE dependencies. @AlexSkrypnyk (#1134)
- Updated GHA versions. @AlexSkrypnyk
- Updated GHA release drafter to use
$RESOLVED_VERSION
passed from the action instead of hardcoded$NEXT_MINOR_VERSION
. @AlexSkrypnyk - [#1127] Updated CI job names to consists of hyphens only. @AlexSkrypnyk (#1133)
- Updated Rector config and code to adhere to the latest rules. @AlexSkrypnyk (#1130)
- Updated comments and references in CI config. @AlexSkrypnyk (#1123)
𧩠Integrations
Lagoon
- [#1175] Show DrevOps variables in Lagoon only when
$DREVOPS_DEBUG
is set. @AlexSkrypnyk (#1182)
Acquia
None
π Documentation
None
DrevOps
- Replaced Wiki assets with release assets. @AlexSkrypnyk (#1186)(#1181)
- Lint scripts using Shellvar. @AlexSkrypnyk (#1183)
- [#1137] Moved docs publishing to GHA. @AlexSkrypnyk (#1139)
- Moved DevTool from the codebase to own repo. @AlexSkrypnyk (#1180)
- Moved Installer from the codebase to own repo. @AlexSkrypnyk (#1176)
Full Changelog: 1.18.0...1.19.0
@AlexSkrypnyk, @renovate and @renovate[bot]
1.18.0 Documentation, Rector, image updates
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
- Allow to provide custom
DREVOPS_LOCALDEV_URL
. @AlexSkrypnyk (#1076)
Fixes
None
Updates
- Update squidfunk/mkdocs-material Docker tag to v9.4.10 @renovate (#1097)
- Update Docker images to v23.11.0 @renovate (#1096)
π§ Drupal
New features
None
Fixes
- Updated
composer.json
to be inline withdrupal-project
. @AlexSkrypnyk (#1094)
Updates
- Removed generation of one-time login link during provisioning. @AlexSkrypnyk (#1083)
- Removed obsolete modules from
composer.json
. @AlexSkrypnyk (#1078) - Updated
stage_file_proxy
to v2. @AlexSkrypnyk (#1077)
π€ CI and workflow
New features
- Added Rector. @AlexSkrypnyk (#1092)
Updates
- Removed 'ahoy clean' in favour of
ahoy reset
andahoy 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
- Added a
devtool
CLI tool to help with the maintenance of DrevOPs. @AlexSkrypnyk (#1094) - Move shellcheck exceptions into files to make them portable. @AlexSkrypnyk (#1071)
- Added excluding of version checks during docker-compose tests. @AlexSkrypnyk (#1061)
Full Changelog: 1.17.4...1.18.0
@AlexSkrypnyk, @renovate and @renovate[bot]
Updated Docker images to v23.10.0
- Updated Docker images to v23.10.0 @AlexSkrypnyk (#1059)
Fixed installer.
What's new since 1.17.0
- Fixed installer incorrect signature. @AlexSkrypnyk (#1031)
Full Changelog: 1.17.0...1.18.0
Coverage, simple tooling config and `provision` command
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
- Removed
DREVOPS_APP
variable. @AlexSkrypnyk (#1011) - Fixed variables format in Dockerfiles and added variables linter to the script. @AlexSkrypnyk (#999)
- Fixed deprectaed methods in test traits. @AlexSkrypnyk
Updates
- Enabled verbose output for Docker and composer. @AlexSkrypnyk (#1014)
- Update Docker images to 23.9.0 @renovate (#1008)
π§ Drupal
New features
- Added more test traits. @AlexSkrypnyk
Fixes
None
Updates
- Upgraded Drush to 12. @AlexSkrypnyk
- Removed custom DB overrides in favour of in-container variables. @AlexSkrypnyk (#1017)
π€ CI and workflow
New features
- Added PHPUnit config file and coverage. @AlexSkrypnyk (#1016)
- Added support for Dockerfile updates in Renovate configurations. @AlexSkrypnyk (#1004)
Updates
- Renamed
site-install
toprovision
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 usedefault
suffix. @AlexSkrypnyk (#994) - Updated email notification script to use
sendmail
before usingmail
. @AlexSkrypnyk (#983)
Fixes
- Fixed outdated Drupal version in
.env
. @AlexSkrypnyk (#1022)
𧩠Integrations
Lagoon
None (upstream fixes already included in images 23.9.0
).
Acquia
- Fixed domain notification mapping in Acquia cache purging. @AlexSkrypnyk (#989)
π Documentation
- Updated docs. @AlexSkrypnyk (#1020)
- Fixed docs not correctly publishing multiple versions. @AlexSkrypnyk (#1023)
- Fixed example script not being included in docs. @AlexSkrypnyk (#985)
- Updated GitHub PR template. @AlexSkrypnyk (#968)
DrevOps
- Fixed coding standards in all scripts for all variables to be wrapped in ${}. @AlexSkrypnyk (#990)
- Consolidated "service" files to reside in
.drevops
directory. @AlexSkrypnyk (#1001) - Install script:
- Refactored installer into Symfony command app. @AlexSkrypnyk
- DrevOps tests:
- Added test coverage for scripts. @AlexSkrypnyk (#995)
- Updated bats-helpers. @AlexSkrypnyk (#1021)
Full Changelog: 1.16.1...1.17.0
@AlexSkrypnyk, @renovate and @renovate[bot]
Fixes for Installer, Acquia integrations and site install.
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
- Updated images to
23.8.0
. @AlexSkrypnyk
π§ Drupal
New features
None
Fixes
- Fixed deprecated methods in test traits. @AlexSkrypnyk
- Downgraded
config_split
to stable version 1. @AlexSkrypnyk (#964)
Updates
- Upgraded Drush to 12. π @AlexSkrypnyk
π€ 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
- Updated CI builder version to
23.8.1
. @AlexSkrypnyk (#963)
Fixes
𧩠Integrations
Lagoon
None
Acquia
- Fixed paths in Acquia hooks. @AlexSkrypnyk
- Fixed Acquia domain discovery in email notifications. @AlexSkrypnyk
π Documentation
None
DrevOps
- Refactored
site-install
to usedrush: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.
- Introduced
- Fixed several variable names and descriptions. @AlexSkrypnyk (#955)
- Added shfmt linting of scripts and fixed formatting. @AlexSkrypnyk
- Updated
DREVOPS_DEBUG
to be set by1
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 be1
but per-env can be set to0
). This approach is used for all variables in DrevOps. @AlexSkrypnyk (#964) - Updated color messages to be based on the
TERM
'sdumb
value. @AlexSkrypnyk (#975) - Installer:
- Fixed latest version discovery in installer. @AlexSkrypnyk, @richardgaunt π π π (#976, #965)
- 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
Drupal 10, Docker Compose 2, more tools and DrevOps test optimisations
π³ 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 ofdrevops/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 tocomposer.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
toweb
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 fromdrupal-composer/drupal-project
. - Updated
ScriptHandler.php
to handle Drupal10.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 withwip1
). - 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 othertest-*.sh
scripts, liketest-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 otherlint-*.sh
scripts, likelint-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 othernotify-*.sh
scripts, likenotify-jira.sh
,notify-email.sh
etc. - Renamed
DOCKER_USERNAME
toDOCKER_USER
in all scripts. - Renamed
DREVOPS_AHOY_CONFIRM_RESPONSE
toAHOY_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 whenpygmy
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/*
andhotifx/*
branches to be considered atest
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
toinstaller.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.
π³ 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 incomposer.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
tosass
((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.
- DrevOps variables use
- 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
tomain
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 oncomposer 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 uppercaseTRUE
/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
toartifact
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.