Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
4dac17d
Reconciled '.editorconfig' with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
743550e
Reconciled '.prettierrc.json' with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
28f39c1
Reconciled 'rector.php' with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
6dceb2a
Reconciled '.docker/' dockerfiles with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
a7af5bb
Reconciled 'docker-compose.yml' with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
fc344be
Reconciled 'behat.yml' with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
71ac027
Reconciled '.github/workflows/build-test-deploy.yml' with Vortex 'ca0…
AlexSkrypnyk Aug 21, 2026
f142527
Reconciled 'renovate.json' with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
d0592a4
Reconciled '.ahoy.yml' with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
8e19086
Reconciled composer with Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
aacdb13
Surgically merged 'tests/behat/bootstrap/FeatureContext.php' with Vor…
AlexSkrypnyk Aug 21, 2026
0618f99
Replaced 'suspend_mail_send' with a mail collector and Reroute Email.
AlexSkrypnyk Aug 21, 2026
42a63da
Switched module tooling from Yarn to npm and adopted the ESLint 9 con…
AlexSkrypnyk Aug 21, 2026
6257f12
Tracked '.claude/skills/' in the repository.
AlexSkrypnyk Aug 21, 2026
6fe51fc
Updated Vortex documentation links to the restructured paths.
AlexSkrypnyk Aug 21, 2026
95d15d6
Replaced the provision task completion marker '<' with '+'.
AlexSkrypnyk Aug 21, 2026
9587535
Accepted Vortex addition 'tests/behat/features/password_reset.feature'.
AlexSkrypnyk Aug 21, 2026
fb5bb80
Updated '.vortex-manifest.json' for Vortex 'ca0ca82'.
AlexSkrypnyk Aug 21, 2026
c644090
Fixed lint failure: corrected JSDoc types rejected by the ESLint 9 co…
AlexSkrypnyk Aug 21, 2026
c57f2ed
Updated 'drupal/diff' to '2.1.1' to resolve SA-CONTRIB-2026-096.
AlexSkrypnyk Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .ahoy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,25 +169,25 @@ commands:
usage: Install front-end assets.
aliases: [fe-install]
cmd: |
ahoy cli "yarn install --frozen-lockfile"
ahoy cli "yarn --cwd=${WEBROOT}/themes/custom/${DRUPAL_THEME} install --frozen-lockfile"
ahoy cli "npm ci"

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vortex ca0ca82: drevops/vortex#3046

Every front-end command moves from Yarn to npm. ahoy fei now runs npm ci at the root and npm --prefix=... ci for the subtheme, and fe/fed/few/lint-fe/lint-fix-fe call npm run instead of yarn run.

The practical effect: a root node_modules installed by Yarn should be removed once after checking this branch out, or npm ci will be working against a tree it did not create. The subtheme is unaffected because it already used npm.

The template also renames the Jest test-js command in this commit; it is absent here because this project does not have Jest enabled.

ahoy cli "npm --prefix=${WEBROOT}/themes/custom/${DRUPAL_THEME} ci"

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"

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

lint-tests:
usage: Lint tests code.
Expand Down Expand Up @@ -239,8 +239,8 @@ 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 "yarn run --cwd=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix"
ahoy cli "npm run lint-fix"
ahoy cli "npm run --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} lint-fix"

test:
usage: Run all PHPUnit tests.
Expand Down
7 changes: 4 additions & 3 deletions .docker/cli.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,10 @@ RUN mkdir -p -m 2775 "/app/${WEBROOT}/${DRUPAL_PUBLIC_FILES}" "/app/${WEBROOT}/$

RUN if [ "${VORTEX_FRONTEND_BUILD_SKIP}" != "1" ]; then \
theme_path="/app/${WEBROOT}/themes/custom/${DRUPAL_THEME}"; \
npm --prefix "${theme_path}" ci --no-progress && \
npm --prefix "${theme_path}" run build && \
npm cache clean --force; \
export npm_config_cache=/tmp/npm-cache; \

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vortex ca0ca82: drevops/vortex#3046

The theme build now points npm's cache at /tmp/npm-cache and deletes that directory in the same layer, instead of calling npm cache clean --force afterwards. Cleaning the cache as a separate step leaves the downloaded tarballs in the layer that created them, so the image carries them regardless; writing the cache somewhere disposable and removing it in the same RUN keeps it out of the layer entirely.

--no-audit --no-fund suppress two network-dependent notices that only add noise to the build log, and --prefix= gains its = to match the form used everywhere else after the npm switch.

npm --prefix="${theme_path}" ci --no-progress --no-audit --no-fund && \
npm --prefix="${theme_path}" run build && \
rm -rf /tmp/npm-cache; \
fi

WORKDIR /app
3 changes: 3 additions & 0 deletions .docker/database.dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# check=skip=SecretsUsedInArgOrEnv

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vortex ca0ca82

Adds # check=skip=SecretsUsedInArgOrEnv at the top of the file. BuildKit runs its own check that duplicates hadolint's DL3064, and the inline hadolint ignore comment further down does not silence it, so the build emitted a warning that could not be suppressed where the existing ignore lives. The directive has to be the first line of the file to be recognised, which is why it sits above the file's own header comment.

No image tag or base image change here, so nothing about what the container runs is affected.

# Database container.
#
# The check skipped above is BuildKit's twin of DL3064, ignored inline below.
#
# @see https://hub.docker.com/r/uselagoon/mysql-8.4/tags
# @see https://github.com/uselagoon/lagoon-images/tree/main/images/mysql
#
Expand Down
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ indent_size = 4
[*.xml]
indent_size = 4

[.eslintrc.json]
[eslint.config.mjs]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vortex ca0ca82: drevops/vortex#3047

Follows the ESLint 9 migration: the two-space indent rule was keyed to .eslintrc.json, which this PR deletes, so it is re-keyed to eslint.config.mjs. Without this the new config file would fall through to the file's default indent and fight the formatter on every edit.

indent_size = 2

[.prettierrc.json]
Expand Down
6 changes: 3 additions & 3 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ DRUPAL_CLAMAV_MODE=daemon
# or fresh install from profile), running updates, appying configuration
# changes, clearing caches and performing other tasks that prepare the site for
# use.
# @see https://www.vortextemplate.com/docs/drupal/provision
# @see https://www.vortextemplate.com/docs/development/provision

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Vortex ca0ca82: drevops/vortex#3038

Documentation links only. Vortex restructured its docs into a single Development section, so /docs/drupal/provision became /docs/development/provision. The three changed lines are @see comments; no variable name, default or behaviour changes in this file.

Worth noting for what is not here: adopting Reroute Email in this PR did not require new .env entries, because settings.reroute_email.php falls back to a project default when DRUPAL_REROUTE_EMAIL_ADDRESS and DRUPAL_REROUTE_EMAIL_ALLOWED are unset.


# Set to 'profile' to install a site from profile instead of the database dump.
VORTEX_PROVISION_TYPE=database
Expand Down Expand Up @@ -126,13 +126,13 @@ VORTEX_PROVISION_VERIFY_CONFIG_UNCHANGED_AFTER_UPDATE=0
#
# Database sanitization is enabled by default in all non-production
# environments and is always skipped in the production environment.
# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization
# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization
VORTEX_PROVISION_SANITIZE_DB_SKIP=1

# Sanitization email pattern.
#
# Applied if database sanitization is enabled.
# @see https://www.vortextemplate.com/docs/drupal/provision#database-sanitization
# @see https://www.vortextemplate.com/docs/development/provision#database-sanitization
VORTEX_PROVISION_SANITIZE_DB_EMAIL=user_%uid@drevops.com

# Put the site into a maintenance mode during site provisioning.
Expand Down
10 changes: 0 additions & 10 deletions .eslintignore

This file was deleted.

84 changes: 0 additions & 84 deletions .eslintrc.json

This file was deleted.

61 changes: 38 additions & 23 deletions .github/workflows/build-test-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ jobs:
docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli bash -c " \
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"
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"

- name: Validate Composer configuration is normalized
run: docker compose exec -T cli composer normalize --dry-run
Expand All @@ -159,12 +159,12 @@ jobs:
continue-on-error: ${{ vars.VORTEX_CI_GHERKIN_LINT_IGNORE_FAILURE == '1' }}

- name: Lint module code with NodeJS linters
run: docker compose exec -T cli bash -c "yarn run lint"
run: docker compose exec -T cli bash -c "npm run lint"
continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }}

- name: Lint theme code with NodeJS linters
if: ${{ vars.VORTEX_FRONTEND_BUILD_SKIP != '1' }}
run: docker compose exec -T cli bash -c "npm --prefix \${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint"
run: docker compose exec -T cli bash -c "npm --prefix=\${WEBROOT}/themes/custom/\${DRUPAL_THEME} run lint"
continue-on-error: ${{ vars.VORTEX_CI_NODEJS_LINT_IGNORE_FAILURE == '1' }}

database:
Expand Down Expand Up @@ -195,7 +195,7 @@ jobs:
steps:
# Frees disk space by removing preinstalled toolchains unused by this project. Steps run in a container, so the host is reached via the Docker socket.
- name: Free up disk space on the runner
if: ${{ vars.CI_FREE_DISK_SPACE == '1' }}
if: ${{ vars.VORTEX_CI_FREE_DISK_SPACE == '1' }}
run: |
set -- /host/usr/local/.ghcup /host/usr/share/swift /host/usr/local/share/powershell /host/usr/share/dotnet /host/opt/hostedtoolcache/CodeQL
# set -- "$@" /host/usr/local/lib/android # Removes about 10GB more, but takes about 50s. Uncomment to enable.
Expand Down Expand Up @@ -270,10 +270,10 @@ jobs:
if [ ! -f /tmp/fetch-db-fresh ]; then echo "==> Database fetch semaphore file is missing. DB export will not proceed."; exit 0; fi
./vendor/bin/vortex-login-container-registry
docker compose up --detach && sleep 15
docker compose exec cli mkdir -p .data && docker compose cp -L .data/db.sql cli:/app/.data/db.sql
docker compose exec cli mkdir -p .data && docker compose --progress quiet cp -L .data/db.sql cli:/app/.data/db.sql
docker compose exec cli bash -c "VORTEX_PROVISION_POST_OPERATIONS_SKIP=1 ./vendor/bin/vortex-provision"
./vendor/bin/vortex-export-db db.sql
docker compose cp -L cli:/app/.data/db.sql .data/db.sql
docker compose --progress quiet cp -L cli:/app/.data/db.sql .data/db.sql
Comment thread
coderabbitai[bot] marked this conversation as resolved.
timeout-minutes: 30

# Save cache per default branch and the timestamp.
Expand Down Expand Up @@ -303,6 +303,22 @@ jobs:
instance: [0, 1]
fail-fast: false

env:
# Which tools run on this instance. Tools that only need to run once are
# pinned to the first instance. Add a line for every additional tool and
# reference it in that tool's step.
# https://www.vortextemplate.com/docs/continuous-integration#test-parallelism
VORTEX_CI_RUNNER_INDEX: ${{ strategy.job-index }}
VORTEX_CI_RUNNER_TOTAL: ${{ strategy.job-total }}
VORTEX_CI_IS_PHPUNIT_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }}
VORTEX_CI_IS_SDC_DEVEL_RUNNER: ${{ matrix.instance == 0 || strategy.job-total == 1 }}
# Runs on every instance, using the `p<instance index - offset>` profile.
VORTEX_CI_IS_BEHAT_RUNNER: true
# Subtracted from the instance index to derive the profile number. Raise
# it by one for every leading instance that does not run Behat, so the
# first Behat instance still selects the `p0` catch-all profile.
VORTEX_CI_BEHAT_PROFILE_OFFSET: 0

container:
# https://hub.docker.com/r/drevops/ci-runner
image: drevops/ci-runner:26.8.0@sha256:80be478cfff66d81fa804ccc707dbeae478655d8b850f1ae06824c194bd6528e
Expand All @@ -328,7 +344,7 @@ jobs:
steps:
# Frees disk space by removing preinstalled toolchains unused by this project. Steps run in a container, so the host is reached via the Docker socket.
- name: Free up disk space on the runner
if: ${{ vars.CI_FREE_DISK_SPACE == '1' }}
if: ${{ vars.VORTEX_CI_FREE_DISK_SPACE == '1' }}
run: |
set -- /host/usr/local/.ghcup /host/usr/share/swift /host/usr/local/share/powershell /host/usr/share/dotnet /host/opt/hostedtoolcache/CodeQL
# set -- "$@" /host/usr/local/lib/android # Removes about 10GB more, but takes about 50s. Uncomment to enable.
Expand Down Expand Up @@ -395,7 +411,7 @@ jobs:
if: ${{ matrix.instance == 0 && !startsWith(github.head_ref || github.ref_name, 'deps/') && contains(env.VORTEX_DEPLOY_TYPES, 'artifact') }}
run: |
mkdir -p "/tmp/workspace/code" "/tmp/artifacts"
docker compose cp -L cli:"/app/." "/tmp/workspace/code"
docker compose --progress quiet cp -L cli:"/app/." "/tmp/workspace/code"
tar -C /tmp/workspace -cpf /tmp/artifacts/code.tar code
du -sh "/tmp/artifacts"

Expand All @@ -411,27 +427,27 @@ 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
docker compose exec $(env | cut -f1 -d= | sed 's/^/-e /') -T cli ./vendor/bin/vortex-provision
timeout-minutes: 30

- name: Test with PHPUnit
if: ${{ matrix.instance == 0 || strategy.job-total == 1 }}
if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }}
run: docker compose exec -T cli vendor/bin/phpunit
continue-on-error: ${{ vars.VORTEX_CI_PHPUNIT_IGNORE_FAILURE == '1' }}

- name: Process PHPUnit logs and coverage
if: ${{ matrix.instance == 0 || strategy.job-total == 1 }}
if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }}
run: |
mkdir -p ".logs"
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/. ".logs/"
docker compose --progress quiet cp cli:/app/.logs/. ".logs/"
fi

- name: Extract code coverage
if: ${{ matrix.instance == 0 || strategy.job-total == 1 }}
if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }}
run: |
RATE=$(grep -om1 'line-rate="[0-9.]*"' .logs/coverage/phpunit/cobertura.xml | tr -cd '0-9.')
PERCENT=$(awk "BEGIN {printf \"%.2f\", $RATE*100}")
Expand All @@ -449,7 +465,7 @@ jobs:
VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }}

- name: Post coverage summary as PR comment
if: ${{ github.event_name == 'pull_request' && (matrix.instance == 0 || strategy.job-total == 1) && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }}
if: ${{ github.event_name == 'pull_request' && env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && vars.VORTEX_CI_CODE_COVERAGE_PR_COMMENT_SKIP != '1' }}
uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5
with:
header: coverage-gha
Expand All @@ -469,7 +485,7 @@ jobs:

- name: Upload coverage report to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7
if: ${{ (matrix.instance == 0 || strategy.job-total == 1) && env.CODECOV_TOKEN != '' }}
if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' && env.CODECOV_TOKEN != '' }}
continue-on-error: true
with:
directory: .logs/coverage
Expand All @@ -479,7 +495,7 @@ jobs:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

- name: Check code coverage threshold
if: ${{ matrix.instance == 0 || strategy.job-total == 1 }}
if: ${{ env.VORTEX_CI_IS_PHPUNIT_RUNNER == 'true' }}
run: |
if [ "${COVERAGE_PERCENT//.}" -lt "$((VORTEX_CI_CODE_COVERAGE_THRESHOLD*100))" ]; then
echo "FAIL: coverage ${COVERAGE_PERCENT}% is below threshold ${VORTEX_CI_CODE_COVERAGE_THRESHOLD}%"
Expand All @@ -489,7 +505,7 @@ jobs:
VORTEX_CI_CODE_COVERAGE_THRESHOLD: ${{ vars.VORTEX_CI_CODE_COVERAGE_THRESHOLD || '90' }}

- name: Validate Single Directory Components
if: ${{ matrix.instance == 0 || strategy.job-total == 1 }}
if: ${{ env.VORTEX_CI_IS_SDC_DEVEL_RUNNER == 'true' }}
run: |
[ "${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)
Expand All @@ -501,16 +517,15 @@ jobs:
continue-on-error: ${{ vars.VORTEX_CI_SDC_DEVEL_IGNORE_FAILURE == '1' }}

- name: Test with Behat
if: ${{ env.VORTEX_CI_IS_BEHAT_RUNNER == 'true' }}
run: |
# shellcheck disable=SC2170
if [ "${STRATEGY_JOB_TOTAL}" -gt 1 ]; then export VORTEX_CI_BEHAT_PROFILE="${VORTEX_CI_BEHAT_PROFILE:-p${STRATEGY_JOB_INDEX}}"; fi
if [ "${VORTEX_CI_RUNNER_TOTAL}" -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}"
env:
VORTEX_CI_BEHAT_PROFILE: ${{ vars.VORTEX_CI_BEHAT_PROFILE }}
STRATEGY_JOB_TOTAL: ${{ strategy.job-total }}
STRATEGY_JOB_INDEX: ${{ strategy.job-index }}
continue-on-error: ${{ vars.VORTEX_CI_BEHAT_IGNORE_FAILURE == '1' }}
timeout-minutes: 30

Expand All @@ -519,7 +534,7 @@ jobs:
run: |
mkdir -p ".logs"
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/. ".logs/"
docker compose --progress quiet cp cli:/app/.logs/. ".logs/"
fi

- name: Upload test artifacts
Expand Down
Loading
Loading