I want to make it so that the step "merge-report" always runs even if one or all shards fail. But this step is not run if one step or all steps fail.
This is my yml file:
image: mcr.microsoft.com/playwright:v1.50.1-noble
definitions:
steps:
- step: &install-playwright
name: Install Playwright
script:
- npm config set registry "https://artifactory.persgroep.cloud/artifactory/api/npm/npm"
- curl -u${ARTIFACTORY_USER}:${ARTIFACTORY_PASSWORD} "https://artifactory.persgroep.cloud/artifactory/api/npm/auth" > .npmrc
- npm config fix
- npm ci
- npm install -D @playwright/test@latest
- npx playwright --version
- npx envinfo --preset playwright
- PLAYWRIGHT_BROWSERS_PATH=./ms-playwright npx playwright install --with-deps
- PLAYWRIGHT_BROWSERS_PATH=./ms-playwright npx playwright install chrome
- PLAYWRIGHT_BROWSERS_PATH=./ms-playwright npx playwright install msedge
- PLAYWRIGHT_BROWSERS_PATH=./ms-playwright npx playwright install firefox
artifacts:
- ms-playwright/**
- node_modules/**
caches:
- node
- step: &playwright-ui-acc-tests
name: Run Playwright UI tests
script:
- npx playwright --version
- npx envinfo --preset playwright
- npx playwright install chrome
- npx playwright install msedge
- export SHARD_INDEX=$(expr ${BITBUCKET_PARALLEL_STEP} + 1)
- mkdir -p blob-report # Collect all reports here
- PLAYWRIGHT_BROWSERS_PATH=./ms-playwright npx playwright test --grep-invert @prod --shard=${SHARD_INDEX}/${BITBUCKET_PARALLEL_STEP_COUNT} --output=blob-report-${SHARD_INDEX}
- echo "Playwright tests on shard ${SHARD_INDEX} completed."
- ls -lahR blob-report/blob-report-${SHARD_INDEX} || echo "No reports found!"
- set +e echo "This step will run and might fail"
artifacts:
- blob-report/**
allow_failure: true
- step: &playwright-ui-prod-tests
name: Run Playwright UI tests
script:
- npx playwright --version
- npx envinfo --preset playwright
- npx playwright install chrome
- npx playwright install msedge
- export SHARD_INDEX=$(expr ${BITBUCKET_PARALLEL_STEP} + 1)
- mkdir -p blob-report # Collect all reports here
- PLAYWRIGHT_BROWSERS_PATH=./ms-playwright npx playwright test --grep @prod --shard=${SHARD_INDEX}/${BITBUCKET_PARALLEL_STEP_COUNT} --output=blob-report-${SHARD_INDEX}
- echo "Playwright tests on shard ${SHARD_INDEX} completed."
- ls -lahR blob-report/blob-report-${SHARD_INDEX} || echo "No reports found!"
- set +e echo "This step will run and might fail"
artifacts:
- blob-report/**
allow_failure: true
- step: &playwright-ui-all-tests
name: Run Playwright UI tests
script:
- npx playwright --version
- npx envinfo --preset playwright
- npx playwright install chrome
- npx playwright install msedge
- export SHARD_INDEX=$(expr ${BITBUCKET_PARALLEL_STEP} + 1)
- mkdir -p blob-report # Collect all reports here
- PLAYWRIGHT_BROWSERS_PATH=./ms-playwright npx playwright test --shard=${SHARD_INDEX}/${BITBUCKET_PARALLEL_STEP_COUNT} --output=blob-report-${SHARD_INDEX}
- echo "Playwright tests on shard ${SHARD_INDEX} completed."
- ls -lahR blob-report/blob-report-${SHARD_INDEX} || echo "No reports found!"
- set +e echo "This step will run and might fail"
artifacts:
- blob-report/**
allow_failure: true
- step: &merge-reports
name: Merge Playwright Reports
script:
- set +e echo "This step should always run"
- npx playwright merge-reports blob-report --reporter=html
artifacts:
- playwright-report/**
when: always
pipelines:
custom:
run-all-tests-parallel:
- step: *install-playwright
- parallel:
- step:
<<: *playwright-ui-all-tests
name: Run PW UI tests 1/4
- step:
<<: *playwright-ui-all-tests
name: Run PW UI tests 2/4
- step:
<<: *playwright-ui-all-tests
name: Run PW UI tests 3/4
- step:
<<: *playwright-ui-all-tests
name: Run PW UI tests 4/4
- step:
<<: *merge-reports
name: Merge Playwright Reports
when: always
run-acceptance-tests-parallel:
- step: *install-playwright
- parallel:
- step:
<<: *playwright-ui-acc-tests
name: Run PW UI tests 1/4
- step:
<<: *playwright-ui-acc-tests
name: Run PW UI tests 2/4
- step:
<<: *playwright-ui-acc-tests
name: Run PW UI tests 3/4
- step:
<<: *playwright-ui-acc-tests
name: Run PW UI tests 4/4
- step:
<<: *merge-reports
name: Merge Playwright Reports
when: always
run-production-tests-parallel:
- step: *install-playwright
- parallel:
- step:
<<: *playwright-ui-prod-tests
name: Run PW UI tests 1/4
- step:
<<: *playwright-ui-prod-tests
name: Run PW UI tests 2/4
- step:
<<: *playwright-ui-prod-tests
name: Run PW UI tests 3/4
- step:
<<: *playwright-ui-prod-tests
name: Run PW UI tests 4/4
- step:
<<: *merge-reports
name: Merge Playwright Reports
when: always
If found the solution:
on-fail:
strategy: ignore
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.