Test old branches #17
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test old branches | |
on: | |
# Verify the workflow is successful when this file is updated. | |
push: | |
branches: | |
- trunk | |
paths: | |
- '.github/workflows/test-old-branches.yml' | |
- '.github/workflows/reusable-phpunit-tests-v1.yml' | |
- '.github/workflows/reusable-phpunit-tests-v2.yml' | |
# Run twice a month on the 1st and 15th at 00:00 UTC. | |
schedule: | |
- cron: '0 0 1 * *' | |
- cron: '0 0 15 * *' | |
# Disable permissions for all available scopes by default. | |
# Any needed permissions should be configured at the job level. | |
permissions: {} | |
env: | |
CURRENTLY_SUPPORTED_BRANCH: '6.6' | |
jobs: | |
dispatch-workflows-for-old-branches: | |
name: ${{ matrix.workflow }} for ${{ matrix.branch }} | |
runs-on: ubuntu-latest | |
permissions: | |
actions: write | |
timeout-minutes: 20 | |
if: ${{ github.repository == 'WordPress/wordpress-develop' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
workflow: [ | |
'coding-standards.yml', | |
'javascript-tests.yml', | |
'phpunit-tests.yml', | |
'test-build-processes.yml' | |
] | |
branch: [ | |
'6.6', '6.5', '6.4', '6.3', '6.2', '6.1','6.0', | |
'5.9', '5.8', '5.7', '5.6', '5.5', '5.4', '5.3', '5.2', '5.1', '5.0', | |
'4.9', '4.8', '4.7', '4.6', '4.5', '4.4', '4.3', '4.2', '4.1' | |
] | |
include: | |
# PHP Compatibility testing was introduced in 5.5. | |
- branch: '6.6' | |
workflow: 'php-compatibility.yml' | |
- branch: '6.5' | |
workflow: 'php-compatibility.yml' | |
- branch: '6.4' | |
workflow: 'php-compatibility.yml' | |
- branch: '6.3' | |
workflow: 'php-compatibility.yml' | |
- branch: '6.2' | |
workflow: 'php-compatibility.yml' | |
- branch: '6.1' | |
workflow: 'php-compatibility.yml' | |
- branch: '6.0' | |
workflow: 'php-compatibility.yml' | |
- branch: '5.9' | |
workflow: 'php-compatibility.yml' | |
- branch: '5.8' | |
workflow: 'php-compatibility.yml' | |
- branch: '5.7' | |
workflow: 'php-compatibility.yml' | |
- branch: '5.6' | |
workflow: 'php-compatibility.yml' | |
- branch: '5.5' | |
workflow: 'php-compatibility.yml' | |
# End-to-end testing was introduced in 5.3 but was later removed as there were no meaningful assertions. | |
# Starting in 5.8 with #52905, some additional tests with real assertions were introduced. | |
# Branches 5.8 and newer should be tested to confirm no regressions are introduced. | |
- branch: '6.6' | |
workflow: 'end-to-end-tests.yml' | |
- branch: '6.5' | |
workflow: 'end-to-end-tests.yml' | |
- branch: '6.4' | |
workflow: 'end-to-end-tests.yml' | |
- branch: '6.3' | |
workflow: 'end-to-end-tests.yml' | |
- branch: '6.2' | |
workflow: 'end-to-end-tests.yml' | |
- branch: '6.1' | |
workflow: 'end-to-end-tests.yml' | |
- branch: '6.0' | |
workflow: 'end-to-end-tests.yml' | |
- branch: '5.9' | |
workflow: 'end-to-end-tests.yml' | |
- branch: '5.8' | |
workflow: 'end-to-end-tests.yml' | |
# Performance testing was introduced in 6.2 using Puppeteer but was overhauled to use Playwright instead in 6.4. | |
# Since the workflow frequently failed for 6.2 and 6.3 due to the flaky nature of the Puppeteer tests, | |
# the workflow was removed from those two branches. | |
- branch: '6.6' | |
workflow: 'performance.yml' | |
- branch: '6.5' | |
workflow: 'performance.yml' | |
- branch: '6.4' | |
workflow: 'performance.yml' | |
# Run all branches monthly, but only the currently supported one twice per month. | |
steps: | |
- name: Dispatch workflow run | |
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 | |
if: ${{ github.event_name == 'push' || github.event.schedule == '0 0 15 * *' || matrix.branch == env.CURRENTLY_SUPPORTED_BRANCH }} | |
with: | |
retries: 2 | |
retry-exempt-status-codes: 418 | |
script: | | |
github.rest.actions.createWorkflowDispatch({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
workflow_id: '${{ matrix.workflow }}', | |
ref: '${{ matrix.branch }}' | |
}); | |
slack-notifications: | |
name: Slack Notifications | |
uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk | |
permissions: | |
actions: read | |
contents: read | |
needs: [ dispatch-workflows-for-old-branches ] | |
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} | |
with: | |
calling_status: ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }} | |
secrets: | |
SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }} | |
SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} | |
SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} | |
SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} |