Skip to content

1.37.0 - Resonance

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Mar 06:49
· 16 commits to refs/heads/main since this release

1.37.0 - Resonance

This release extracts demo code into a dedicated module, splits linting into a standalone CI job, restructures CircleCI config for maintainability, and includes multiple CI/CD fixes for Docker permissions, coverage reporting, and branch filtering.


πŸ” Highlights

  • Demo Module Extraction
    Demo code (counter block, deploy hooks, CSS/JS, tests) moved from ys_base into a new ys_demo module, making it easy to remove demo content from production projects.

  • Standalone Lint CI Job
    All linting tools extracted into a dedicated CI job that runs in parallel with the build, providing faster code style feedback.

  • CircleCI Config Split
    CircleCI configuration split into multiple files for better maintainability and separation of concerns.

  • CI/CD Hardening
    Fixed Docker permission warnings in GHA, improved coverage comment handling, and corrected branch filtering for feature/bugfix branches.


πŸ’₯ Breaking changes

None


What's new since 1.36.1

πŸŒ€ Template

  • ✨ New

    • [#2340] Moved demo code from ys_base to new ys_demo module. @AlexSkrypnyk (#2349)
      Demo code (counter block with CSS/JS, deploy hooks, and example tests across Unit, Kernel, Functional, and FunctionalJavascript test types) has been extracted into a dedicated ys_demo module. This makes it straightforward to remove all demo content from production projects by simply disabling one module.

    • [#2363] Added colour to ahoy confirm. @AlexSkrypnyk (#2366)
      Confirmation prompts for destructive ahoy commands now display in red with dimmed [y/N] text, making them more visually prominent and harder to accidentally dismiss.

    • [#2353] Allow running CI builds against PR branches. @AlexSkrypnyk (#2354)
      Added pull_request_target trigger to GitHub Actions workflow so that CI builds can run against PR branches. Previously, only push events to specific branches triggered builds.

    • [#2368] Switched git-artifact to download from GitHub Releases with SHA256 verification. @AlexSkrypnyk (#2370)
      The git-artifact deployment tool is now downloaded as a binary from GitHub Releases instead of being installed via Composer. Each download is verified against a SHA256 checksum, improving supply chain security and removing the Composer dependency from the deploy process.

    • Updated posting of coverage comments to replace existing comments. @AlexSkrypnyk (#2380)
      Coverage comments posted to PRs now replace the previous comment instead of creating duplicates. This uses a dedicated post-coverage-comment.sh script that finds and updates existing comments, keeping PR conversations clean.

    • Added consistent Chromium flags to Behat and PHPUnit configs. @AlexSkrypnyk (#2378)
      Added --disable-popup-blocking flag to Chrome browser arguments in both Behat and PHPUnit configurations. This ensures consistent browser behaviour across both testing frameworks and prevents popup-related test flakiness.

  • πŸ›  Changed

    • [#1571] Split CircleCI config into multiple files. @AlexSkrypnyk (#2105)
      The monolithic CircleCI config.yml has been split into config.yml, vortex-test-common.yml, and update-dependencies.yml. This reduces the main config size and makes each CI concern (project builds, Vortex integration tests, dependency updates) independently maintainable. The installer now also cleans up these internal Vortex CI files during installation.

    • [#2154] Extracted linting into standalone lint CI job. @AlexSkrypnyk (#2346)
      All linting tools (PHPCS, PHPStan, PHPMD, Rector, Twig CS Fixer, ESLint, Stylelint, Gherkin Lint) now run in a dedicated lint job that executes in parallel with the build job. This provides faster feedback on code style issues without waiting for the full build to complete.

    • [#2362] Use yield in data providers. @AlexSkrypnyk (#2367)
      Converted all PHPUnit data providers across the project to use yield statements instead of returning arrays. This improves memory efficiency for large test suites and makes data providers more readable by naming each test case inline.

    • Removed stale references to asset-packagist's installer types. @AlexSkrypnyk (#2359)
      Cleaned up leftover asset-packagist references that were no longer relevant after previous dependency changes.

  • 🐞 Fixed

    • Fixed docker permissions in GHA. @AlexSkrypnyk (#2376)
      Set DOCKER_CONFIG=/tmp/.docker at workflow level to work around the Actions runner creating /root/.docker/config.json with permissions that prevent the container from reading it (actions/runner#863).

    • Fixed pushes to feature/* and bugfix/* branches should not run CI builds. @AlexSkrypnyk (#2365)
      Removed feature/** and bugfix/** from the push trigger list. These branches should only trigger CI via pull request events, not on every push.

    • Fixed S3 upload not stopping on failed upload. @AlexSkrypnyk (#2371)
      The S3 upload script now captures the HTTP response status code and fails with an error message on non-2xx responses. Previously, upload failures were silently ignored.

    • [#2350] Fixed local settings file being included during settings unit tests. @AlexSkrypnyk (#2352)
      Added a guard to prevent settings.local.php from being loaded during unit tests. Developer-specific local settings were polluting the test environment and causing inconsistent results.

    • Fixed DB download variables inconsistencies. @AlexSkrypnyk (#2360)
      Standardised variable naming across all database download scripts (download-db-acquia.sh, download-db-s3.sh, download-db-ftp.sh, etc.) and added test coverage for the main download orchestration script.

    • Fixed migration Drupal variables not starting with DRUPAL_. @AlexSkrypnyk (#2357)
      Renamed migration-related environment variables to use the DRUPAL_ prefix, matching the project's variable naming convention.

    • Fixed coverage threshold check not storing results on low values in CI. @AlexSkrypnyk (#2372)
      When coverage values were very low, the threshold check failed to store results, causing CI job summaries to be incomplete.

    • Fixed missed pinned GHA actions not being updated with Renovate. @AlexSkrypnyk (#2375)
      Pinned shimataro/ssh-key-action to a commit SHA digest so Renovate can track and update it automatically. Previously it used a tag reference that Renovate did not manage.

    • Fixed ownership permissions warning in GHA. @AlexSkrypnyk (#2358)

    • Fixed GH test token not being passed to tests in CI. @AlexSkrypnyk (#2364)

    • [#2338] Fixed installer replacement and PHPMD discovery. @AlexSkrypnyk (#2369)
      Fixed PHPMD tool discovery logic in the installer's Tools handler and a replacement issue in the Webroot handler.

  • ⬆️ Updated


πŸŽ› Installer

  • ✨ New

    • [#2340] Added CustomModules handler for selecting custom modules during installation. @AlexSkrypnyk (#2349)
      A new installer prompt allows users to choose which custom modules (Base, Demo, Search) to include. Previously, all modules were always included. The Demo module can now be easily excluded for production projects, and the Search module selection is linked to Solr service availability.
  • πŸ›  Changed

    • [#1571] Installer now removes Vortex-internal CircleCI config files during installation. @AlexSkrypnyk (#2105)
      Internal vortex-*.yml CircleCI configs are cleaned up during installation, matching the existing cleanup of internal GHA workflows.

    • [#2340] Updated Services and ModulePrefix handlers for demo module support. @AlexSkrypnyk (#2349)
      The Services handler now conditionally includes the Solr service based on Search module selection. The ModulePrefix handler applies prefix renaming to the new demo module alongside the base module.

  • 🐞 Fixed


πŸ“– Documentation


πŸ“‹ Release checklist

  • Updated all dependencies outside of the schedule (run Renovate locally)
  • Updated container images to the latest versions and checked that @see links (v26.2.0)
  • Updated PHP version in composer.json for config.platform. (8.3.28 β†’ 8.3.30)
  • Updated PHP version in phpcs.xml for testVersion. (8.3 β€” unchanged, still on 8.3.x)
  • Updated PHP version in phpstan.neon for phpVersion. (80328 β†’ 80330)
  • Updated minor version of all packages in composer.json. (composer update -W && composer bump done)
  • Updated minor version of dependencies in theme's package.json. (yarn upgrade done)
  • Update drevops/ci-runner to the latest version in .circleci/config.yml and .github/workflows/build-test-deploy.yml. (26.2.0)
  • Incremented the cache version in .circleci/config.yml and .github/workflows/build-test-deploy.yml. (v26.2.0-db11 β†’ v26.2.0-db12)
  • Updated documentation. (cd .vortex && ahoy update-docs done)

Full Changelog: 1.36.1...1.37.0

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