forked from WordPress/wordpress-develop
-
Notifications
You must be signed in to change notification settings - Fork 0
135 lines (127 loc) · 5.14 KB
/
test-old-branches.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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 }}