Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
b2486e9
Restored the Lagoon database override flag to the state it was discov…
AlexSkrypnyk Aug 31, 2026
d74842a
Update toshimaru/auto-author-assign action to v3.1.0 (#2976)
renovate[bot] Aug 13, 2026
27ba697
Raised the InnoDB redo log capacity so large database dumps import.
AlexSkrypnyk Aug 31, 2026
144b58b
Wired the remaining 'behat-steps' traits into 'FeatureContext'.
AlexSkrypnyk Aug 31, 2026
f630d07
Raised the default Drush 'memory_limit' to 1G.
AlexSkrypnyk Aug 31, 2026
96e14a5
Raised the Prettier 'printWidth' default to 160 and pinned doc commen…
AlexSkrypnyk Aug 31, 2026
af905ec
Completed the Rector rename-skip family and audited the skip list.
AlexSkrypnyk Aug 31, 2026
1f2fbf4
Excluded cache table data from the exported database dump.
AlexSkrypnyk Aug 31, 2026
fe5145c
Asserted that every documentation variable source yields variables.
AlexSkrypnyk Aug 31, 2026
0026bb4
Disabled JetBrains Mono ligatures so code samples render '->' and '=>…
AlexSkrypnyk Aug 31, 2026
f63228c
Added generated content provisioning to the development modules deplo…
AlexSkrypnyk Aug 31, 2026
c29e39b
Ran 'composer audit' first and every audit check regardless of failures.
AlexSkrypnyk Aug 31, 2026
c021686
Refreshed the contrib module documentation and added a Modules refere…
AlexSkrypnyk Aug 31, 2026
35dbbf1
Disabled the Solr search server while migrations run.
AlexSkrypnyk Aug 31, 2026
a51ce70
Freed preinstalled runner toolchains in the GitHub Actions test and b…
AlexSkrypnyk Aug 31, 2026
e1e18f3
[#3012] Migrated release drafter's default version resolver to a 'ver…
AlexSkrypnyk Aug 14, 2026
d1749f3
Required a '~' version constraint when installing the tooling package.
AlexSkrypnyk Aug 31, 2026
81d4f80
Anchored environment variable prefixes forwarded by 'ahoy cli'.
AlexSkrypnyk Aug 31, 2026
54765ee
Fixed 'getProtectedValue()' reading the property from the reflection …
AlexSkrypnyk Aug 31, 2026
57f3dd2
Skipped Behat animated screenshots in CI on 'drevops/behat-screenshot…
AlexSkrypnyk Aug 31, 2026
cc0d8e8
Replaced per-step CI runner conditions with declared 'VORTEX_CI_IS_*_…
AlexSkrypnyk Aug 31, 2026
9816224
Reconciled the Vortex documentation for coherence and corrected stale…
AlexSkrypnyk Aug 31, 2026
3b6500f
Updated template Composer dependencies and wired nine 'behat-steps' t…
AlexSkrypnyk Aug 31, 2026
2ecc60f
Added 'VORTEX_CI_BEHAT_PROFILE_OFFSET' to decouple the Behat profile …
AlexSkrypnyk Aug 31, 2026
238dc01
Updated 'drevops/behat-steps' to 3.14.1.
AlexSkrypnyk Aug 31, 2026
aaa75de
Restructured the documentation into a single 'Development' section wi…
AlexSkrypnyk Aug 31, 2026
8308528
Fixed 'window.gtag is not a function' in the docs dev server after a …
AlexSkrypnyk Aug 31, 2026
709d22b
Renamed unprefixed 'CI_*' variables to 'VORTEX_CI_*'.
AlexSkrypnyk Aug 31, 2026
92dcadb
Tracked '.claude/skills/' in consumer projects by default.
AlexSkrypnyk Aug 31, 2026
a5a261f
Switched the template from Yarn to npm for module scripts and theme c…
AlexSkrypnyk Aug 31, 2026
5d20c27
Replaced 'suspend_mail_send' with a mail collector and a closed mail …
AlexSkrypnyk Aug 31, 2026
21c021f
Suppressed 'docker compose cp' progress output in CI.
AlexSkrypnyk Aug 31, 2026
ede60bd
Adopted the Drupal core ESLint 9 configuration and updated the front-…
AlexSkrypnyk Aug 31, 2026
33edb90
Recorded the demos at a 10:6 screen ratio and sized the home page to …
AlexSkrypnyk Aug 31, 2026
4ec09e2
Served both documentation majors from one combined site built on ever…
AlexSkrypnyk Aug 31, 2026
032610e
Refused to render a demo video whose recorded output reports an issue.
AlexSkrypnyk Aug 31, 2026
20a6451
Synchronised npm lock files when the CLI removes front-end tools.
AlexSkrypnyk Aug 31, 2026
fccb157
Update Container images - All - Major, minor and patch to v26.8.1 (#3…
AlexSkrypnyk Aug 31, 2026
609c57a
Update uselagoon/mysql-8.4 Docker tag to v26.8.1.
AlexSkrypnyk Aug 31, 2026
74ba520
Update PHP - All packages except core - Minor and patch.
AlexSkrypnyk Aug 31, 2026
9a2a315
Update dawidd6/action-download-artifact action to v24.
AlexSkrypnyk Aug 31, 2026
432e6b2
Update uselagoon/valkey-8 Docker tag to v26.8.1.
AlexSkrypnyk Aug 31, 2026
3ed2fde
Updated snapshots.
AlexSkrypnyk Aug 31, 2026
f0c7846
Removed the duplicated mail transport variable from the Docker Compos…
AlexSkrypnyk Aug 31, 2026
ebd35eb
Wrote the npm manifest through the JSON manipulator API available here.
AlexSkrypnyk Aug 31, 2026
869097c
Updated snapshots.
AlexSkrypnyk Aug 31, 2026
887400e
Removed the stale ESLint 8 entries from the Acquia snapshot diffs.
AlexSkrypnyk Aug 31, 2026
3962dc9
Updated snapshots.
AlexSkrypnyk Aug 31, 2026
64bcc2c
Fixed lint fallout from the forward-port.
AlexSkrypnyk Aug 31, 2026
2885569
Reflowed two Jest assertions to the raised Prettier print width.
AlexSkrypnyk Aug 31, 2026
2ebed89
Fixed CI fallout from the ESLint 9 port.
AlexSkrypnyk Aug 31, 2026
c121c7a
Updated snapshots.
AlexSkrypnyk Aug 31, 2026
4e125db
Fixed CI fallout from the generated content and ESLint 9 ports.
AlexSkrypnyk Aug 31, 2026
a5b5130
Updated snapshots.
AlexSkrypnyk Aug 31, 2026
3218fc2
Regenerated the documentation variables table.
AlexSkrypnyk Aug 31, 2026
c13c6e5
Resolved each major's raw-loaded files from its own ref in the combin…
AlexSkrypnyk Aug 31, 2026
cb8b700
Split the two commands the combined site assembly ran as one.
AlexSkrypnyk Aug 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 12 additions & 12 deletions .ahoy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ commands:
aliases: [ssh, shell]
cmd: |
if [ "${#}" -ne 0 ]; then
docker compose exec $(env | cut -f1 -d= | grep "TERM\|COMPOSE_\|GITHUB_\|PACKAGE_\|DOCKER_\|DRUPAL_\|VORTEX_\|ENVIRONMENT_\|LOCALDEV_URL$" | sed 's/^/-e /') cli bash -c "$*"
docker compose exec $(env | cut -f1 -d= | grep -E '^(TERM|LOCALDEV_URL)$|^(COMPOSE|GITHUB|PACKAGE|DOCKER|DRUPAL|VORTEX|ENVIRONMENT)_' | sed 's/^/-e /') cli bash -c "$*"
else
docker compose exec $(env | cut -f1 -d= | grep "TERM\|COMPOSE_\|GITHUB_\|PACKAGE_\|DOCKER_\|DRUPAL_\|VORTEX_\|ENVIRONMENT_\|LOCALDEV_URL$" | sed 's/^/-e /') cli bash
docker compose exec $(env | cut -f1 -d= | grep -E '^(TERM|LOCALDEV_URL)$|^(COMPOSE|GITHUB|PACKAGE|DOCKER|DRUPAL|VORTEX|ENVIRONMENT)_' | sed 's/^/-e /') cli bash
fi

composer:
Expand Down Expand Up @@ -211,28 +211,28 @@ commands:
usage: Install front-end assets.
aliases: [fe-install]
cmd: |
ahoy cli "yarn install --frozen-lockfile"
ahoy cli "npm ci"
#;< DRUPAL_THEME
ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile"
ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci"
#;> DRUPAL_THEME

#;< DRUPAL_THEME
fe:
usage: Build front-end assets.
aliases: [fe-build]
cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build"
cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build"

fed:
usage: Build front-end assets for development.
aliases: [fe-build-dev]
cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run build-dev"
cmd: ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run build-dev"

few:
usage: Watch front-end assets during development.
aliases: [fe-watch]
cmd: |
ahoy cli "pkill -9 -f grunt" || true
ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && yarn run watch"
ahoy cli "cd ${WEBROOT}/themes/custom/${DRUPAL_THEME} && npm run watch"
#;> DRUPAL_THEME

lint:
Expand All @@ -253,9 +253,9 @@ commands:
usage: Lint front-end code.
cmd: |
ahoy cli vendor/bin/twig-cs-fixer lint
ahoy cli "yarn run lint"
ahoy cli "npm run lint"
#;< DRUPAL_THEME
ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint"
ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint"
#;> DRUPAL_THEME

lint-tests:
Expand Down Expand Up @@ -291,9 +291,9 @@ commands:
usage: Fix lint issues of front-end code.
cmd: |
ahoy cli vendor/bin/twig-cs-fixer lint --fix
ahoy cli "yarn run lint-fix"
ahoy cli "npm run lint-fix"
#;< DRUPAL_THEME
ahoy cli "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix"
ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix"
#;> DRUPAL_THEME

#;< TOOL_PHPUNIT
Expand Down Expand Up @@ -322,7 +322,7 @@ commands:
#;< TOOL_JEST
test-js:
usage: Run Jest JavaScript unit tests.
cmd: ahoy cli "yarn test"
cmd: ahoy cli "npm test"
#;> TOOL_JEST

#;< TOOL_BEHAT
Expand Down
94 changes: 66 additions & 28 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ jobs:
if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \
COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist"
#;< TOOL_ESLINT_STYLELINT
docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile"
docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci"
#;> TOOL_ESLINT_STYLELINT

- run:
Expand Down Expand Up @@ -213,16 +213,16 @@ jobs:
#;< TOOL_ESLINT_STYLELINT
- run:
name: Lint module code with NodeJS linters
command: docker compose exec -T cli bash -c "yarn run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ]
#;> TOOL_ESLINT_STYLELINT
command: docker compose exec -T cli bash -c "npm run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ]

#;< DRUPAL_THEME
- run:
name: Lint theme code with NodeJS linters
command: |
[ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0
docker compose exec -T cli bash -c "yarn --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ]
docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint" || [ "${VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE:-0}" -eq 1 ]
#;> DRUPAL_THEME
#;> TOOL_ESLINT_STYLELINT

# Audit job runs in its own workflow, independently of the commit workflow.
audit:
Expand All @@ -233,10 +233,6 @@ jobs:

#;< CI_GITLEAKS
- *step_setup_remote_docker

- run:
name: Scan for committed secrets with Gitleaks
command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:v8.30.1 dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ]
#;> CI_GITLEAKS

#;< VORTEX_DEV
Expand All @@ -252,6 +248,13 @@ jobs:
name: Audit Composer packages
command: composer audit --locked || [ "${VORTEX_CI_COMPOSER_AUDIT_IGNORE_FAILURE:-0}" -eq 1 ]

#;< CI_GITLEAKS
- run:
name: Scan for committed secrets with Gitleaks
when: always
command: docker run --rm -v "${PWD}":/repo -w /repo ghcr.io/gitleaks/gitleaks:v8.30.1 dir . --no-banner || [ "${VORTEX_CI_GITLEAKS_IGNORE_FAILURE:-0}" -eq 1 ]
#;> CI_GITLEAKS

# Test the provisioned site. Runs in parallel with the lint and build jobs.
# Provisioning and testing happen within the same job to save time on
# re-provisioning.
Expand All @@ -274,6 +277,38 @@ jobs:
- *step_process_codebase_for_ci
- *load_variables_from_dotenv

- run:
name: Set test runner roles
command: |
# Which tools run on this node. Tools that only need to run once are
# pinned to the first node. Add a line for every additional tool and
# reference it in that tool's step.
# https://www.vortextemplate.com/docs/continuous-integration#test-parallelism
{
echo "export VORTEX_CI_RUNNER_INDEX=${CIRCLE_NODE_INDEX:-0}"
echo "export VORTEX_CI_RUNNER_TOTAL=${CIRCLE_NODE_TOTAL:-1}"
#;< TOOL_JEST
echo "export VORTEX_CI_IS_JEST_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)"
#;> TOOL_JEST
#;< TOOL_PHPUNIT
echo "export VORTEX_CI_IS_PHPUNIT_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)"
#;> TOOL_PHPUNIT
#;< DRUPAL_THEME
#;< MODULE_SDC_DEVEL
echo "export VORTEX_CI_IS_SDC_DEVEL_RUNNER=$([ "${CIRCLE_NODE_INDEX:-0}" -eq 0 ] && echo 1 || echo 0)"
#;> MODULE_SDC_DEVEL
#;> DRUPAL_THEME
#;< TOOL_BEHAT
# Runs on every node, using the `p<node index - offset>` profile.
echo "export VORTEX_CI_IS_BEHAT_RUNNER=1"
# Subtracted from the node index to derive the profile number.
# Raise it by one for every leading node that does not run
# Behat, so the first Behat node still selects the `p0`
# catch-all profile.
echo "export VORTEX_CI_BEHAT_PROFILE_OFFSET=0"
#;> TOOL_BEHAT
} >> "${BASH_ENV}"

- run:
name: Validate Composer configuration
command: composer validate --strict || [ "${VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE:-0}" -eq 1 ]
Expand Down Expand Up @@ -341,7 +376,7 @@ jobs:
#;< DB_FETCH_SOURCE_CONTAINER_REGISTRY
[ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && export VORTEX_EXPORT_DB_CONTAINER_REGISTRY_PUSH_PROCEED=0
#;> DB_FETCH_SOURCE_CONTAINER_REGISTRY
docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql || true
docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql || true
docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision"
#;< DB_FETCH_SOURCE_CONTAINER_REGISTRY
grep -q ^VORTEX_DB_IMAGE .env && rm .data/db.sql || true
Expand All @@ -350,7 +385,7 @@ jobs:
#;< DB_FETCH_SOURCE_CONTAINER_REGISTRY
if [ -n "${VORTEX_DB_IMAGE:-}" ]; then ./vendor/bin/vortex-push-db-image; fi
#;> DB_FETCH_SOURCE_CONTAINER_REGISTRY
docker compose exec -T cli test -f /app/.data/db.sql && docker compose cp -L cli:/app/.data/db.sql .data/db.sql || true
docker compose exec -T cli test -f /app/.data/db.sql && docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql || true
no_output_timeout: 30m

# Save the clean DB dump to the cache before the slow dev-dependency
Expand Down Expand Up @@ -394,7 +429,7 @@ jobs:
if [ -n \"\${PACKAGE_TOKEN:-}\" ]; then composer config --global --auth github-oauth.github.com \"\${PACKAGE_TOKEN}\"; fi && \
COMPOSER_MEMORY_LIMIT=-1 composer --ansi install --prefer-dist"
#;< TOOL_JEST
docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "yarn install --frozen-lockfile"
docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c "npm ci"
#;> TOOL_JEST

- run:
Expand All @@ -404,13 +439,13 @@ jobs:
# container to avoid holding two copies for the rest of the job.
if [ -f .data/db.sql ]; then
docker compose exec cli mkdir -p .data
docker compose cp -L .data/db.sql cli:/app/.data/db.sql
docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql
rm -f .data/db.sql
fi
#;< MIGRATION
if [ -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" ]; then
docker compose exec -T cli mkdir -p .data
docker compose cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}"
docker compose --progress quiet cp -L ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}" cli:"/app/.data/${VORTEX_FETCH_DB2_FILE:-db2.sql}"
rm -f ".data/${VORTEX_FETCH_DB2_FILE:-db2.sql}"
fi
#;> MIGRATION
Expand All @@ -420,29 +455,31 @@ jobs:
#;< TOOL_JEST
- run:
name: Test with Jest
command: docker compose exec -T cli bash -c "yarn test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ]
command: |
[ "${VORTEX_CI_IS_JEST_RUNNER:-1}" = "1" ] || exit 0
docker compose exec -T cli bash -c "npm test" || [ "${VORTEX_CI_JEST_IGNORE_FAILURE:-0}" -eq 1 ]
#;> TOOL_JEST

#;< TOOL_PHPUNIT
- run:
name: Test with PHPUnit
command: |
[ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0
[ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0
docker compose exec -T cli vendor/bin/phpunit || [ "${VORTEX_CI_PHPUNIT_IGNORE_FAILURE:-0}" -eq 1 ]

- run:
name: Process PHPUnit logs and coverage
command: |
[ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0
[ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0
mkdir -p "${VORTEX_CI_ARTIFACTS}"
if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then
docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/"
docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/"
fi

- run:
name: Extract code coverage
command: |
[ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0
[ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0
RATE=$(grep -om1 'line-rate="[0-9.]*"' /tmp/artifacts/coverage/phpunit/cobertura.xml | tr -cd '0-9.')
PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}")
echo "Coverage: $PERCENT% (threshold: ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%)"
Expand All @@ -451,15 +488,15 @@ jobs:
- run:
name: Post coverage summary as PR comment
command: |
[ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0
[ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0
[ "${VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP:-0}" = "1" ] && exit 0
.circleci/post-coverage-comment.sh /tmp/artifacts/coverage/phpunit/coverage.txt

#;< CODE_COVERAGE_PROVIDER_CODECOV
- run:
name: Upload code coverage reports to Codecov
command: |
[ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0
[ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0
if [ -n "${CODECOV_TOKEN}" ] && [ -d /tmp/artifacts/coverage ] && ! echo "${CIRCLE_BRANCH}" | grep -q '^deps/'; then
curl -fOs https://uploader.codecov.io/v0.8.0/linux/codecov
chmod +x codecov
Expand All @@ -470,7 +507,7 @@ jobs:
- run:
name: Check code coverage threshold
command: |
[ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0
[ "${VORTEX_CI_IS_PHPUNIT_RUNNER:-1}" = "1" ] || exit 0
if [ "${COVERAGE_PERCENT//.}" -lt "$((${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}*100))" ]; then
echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD:-90}%"
exit 1
Expand All @@ -482,7 +519,7 @@ jobs:
- run:
name: Validate Single Directory Components
command: |
[ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ] && [ "${CIRCLE_NODE_INDEX:-0}" -ne 0 ] && exit 0
[ "${VORTEX_CI_IS_SDC_DEVEL_RUNNER:-1}" = "1" ] || exit 0
[ "${VORTEX_FRONTEND_BUILD_SKIP:-0}" -eq 1 ] && exit 0
output=$(docker compose exec -T cli vendor/bin/drush sdc-devel:validate "${DRUPAL_THEME}" 2>&1)
echo "${output}"
Expand All @@ -497,10 +534,11 @@ jobs:
- run:
name: Test with Behat
command: |
if [ "${CIRCLE_NODE_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${CIRCLE_NODE_INDEX}}"; fi
[ "${VORTEX_CI_IS_BEHAT_RUNNER:-1}" = "1" ] || exit 0
if [ "${VORTEX_CI_RUNNER_TOTAL:-1}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p$((VORTEX_CI_RUNNER_INDEX - VORTEX_CI_BEHAT_PROFILE_OFFSET))}"; fi
echo "Running with ${VORTEX_CI_BEHAT_PROFILE:-default} profile"
docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \
docker compose exec -T cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \
docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \
docker compose exec -T -e BEHAT_SCREENSHOT_ANIMATION_SKIP=1 cli php -d memory_limit=-1 vendor/bin/behat --colors --strict --rerun --profile="${VORTEX_CI_BEHAT_PROFILE:-default}" || \
[ "${VORTEX_CI_BEHAT_IGNORE_FAILURE:-0}" -eq 1 ]
no_output_timeout: 30m
#;> TOOL_BEHAT
Expand All @@ -510,9 +548,9 @@ jobs:
command: |
mkdir -p "${VORTEX_CI_TEST_RESULTS}" "${VORTEX_CI_ARTIFACTS}"
if docker compose ps --services --filter "status=running" | grep -q cli && docker compose exec cli test -d /app/.logs; then
docker compose cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/"
docker compose --progress quiet cp cli:/app/.logs/. "${VORTEX_CI_ARTIFACTS}/"
if docker compose exec -T cli sh -c '[ -d /app/.logs/test_results/ ]'; then
docker compose cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/"
docker compose --progress quiet cp cli:/app/.logs/test_results/. "${VORTEX_CI_TEST_RESULTS}/"
fi
fi
when: always
Expand Down Expand Up @@ -556,7 +594,7 @@ jobs:
command: |
echo "${VORTEX_DEPLOY_TYPES:-}" | grep -vq "artifact" && exit 0 || true
mkdir -p "/tmp/workspace/code"
docker compose cp -L cli:"/app/." "/tmp/workspace/code"
docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code"
du -sh "/tmp/workspace/code"
#;> DEPLOY_TYPES_ARTIFACT

Expand Down
Loading