Skip to content

Commit 0b93c3b

Browse files
committed
Build/Test Tools: Backport updates to GitHub Actions.
This backports several changesets to GitHub Actions workflows. These changesets: - address the deprecated notices related to save-output and set-output to ensure the workflows continue to run after these are removed. - adds support for automatically retrying a failed workflow once. - removes workflow files that are not applicable to the branch. - backports some Docker environment related tooling updates for the sake of consistency across branches. Merges [53736], [53737], [53940], [53947], [54039], [54096], [54108], [54293], [54313], [54342], [54343], [54373], [54511], [54650], [54651], [54674], [54750], [54852], [55152], [54651], [55487] to the 4.7 branch. See #55652, #56407, #56528, #54695, #56820, #56816, #56793, #56820, #57572. git-svn-id: https://develop.svn.wordpress.org/branches/4.7@55529 602fd350-edb4-49c9-b593-d223f7449a82
1 parent efdedcb commit 0b93c3b

File tree

7 files changed

+180
-50
lines changed

7 files changed

+180
-50
lines changed

.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ LOCAL_DB_TYPE=mysql
5757
#
5858
# Defaults to 5.7 with the assumption that LOCAL_DB_TYPE is set to `mysql` above.
5959
#
60-
# When using `mysql`, see https://hub.docker.com/_/mysql/ for valid versions.
61-
# When using `mariadb`, see https://hub.docker.com/_/mariadb for valid versions.
60+
# When using `mysql`, see https://hub.docker.com/r/amd64/mysql for valid versions.
61+
# When using `mariadb`, see https://hub.docker.com/r/amd64/mariadb for valid versions.
6262
##
6363
LOCAL_DB_VERSION=5.7
6464

.github/workflows/coding-standards.yml

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ on:
99
- '3.[89]'
1010
- '[4-9].[0-9]'
1111
tags:
12-
- '3.[89]*'
13-
- '[4-9].[0-9]*'
12+
- '[0-9]+.[0-9]'
13+
- '[0-9]+.[0-9].[0-9]+'
14+
- '!3.7.[0-9]+'
1415
pull_request:
1516
branches:
1617
- trunk
@@ -20,7 +21,7 @@ on:
2021
# Any change to a PHP or JavaScript file should run checks.
2122
- '**.js'
2223
- '**.php'
23-
# These files configure NPM. Changes could affect the outcome.
24+
# These files configure npm. Changes could affect the outcome.
2425
- 'package*.json'
2526
# These files configure Composer. Changes could affect the outcome.
2627
- 'composer.*'
@@ -49,7 +50,7 @@ jobs:
4950
# - Logs debug information about the GitHub Action runner.
5051
# - Installs NodeJS.
5152
# - Logs updated debug information.
52-
# _ Installs NPM dependencies.
53+
# _ Installs npm dependencies.
5354
# - Run the WordPress JSHint checks.
5455
jshint:
5556
name: JavaScript coding standards
@@ -61,7 +62,7 @@ jobs:
6162

6263
steps:
6364
- name: Checkout repository
64-
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
65+
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
6566

6667
- name: Log debug information
6768
run: |
@@ -70,8 +71,8 @@ jobs:
7071
git --version
7172
svn --version
7273
73-
- name: Install NodeJS
74-
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3.3.0
74+
- name: Set up Node.js
75+
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
7576
with:
7677
node-version-file: '.nvmrc'
7778
cache: npm
@@ -99,3 +100,33 @@ jobs:
99100
SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }}
100101
SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }}
101102
SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }}
103+
104+
failed-workflow:
105+
name: Failed workflow tasks
106+
runs-on: ubuntu-latest
107+
needs: [ jshint, slack-notifications ]
108+
if: |
109+
always() &&
110+
github.repository == 'WordPress/wordpress-develop' &&
111+
github.event_name != 'pull_request' &&
112+
github.run_attempt < 2 &&
113+
(
114+
needs.jshint.result == 'cancelled' || needs.jshint.result == 'failure'
115+
)
116+
117+
steps:
118+
- name: Dispatch workflow run
119+
uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6.4.0
120+
with:
121+
retries: 2
122+
retry-exempt-status-codes: 418
123+
script: |
124+
github.rest.actions.createWorkflowDispatch({
125+
owner: context.repo.owner,
126+
repo: context.repo.repo,
127+
workflow_id: 'failed-workflow.yml',
128+
ref: 'trunk',
129+
inputs: {
130+
run_id: '${{ github.run_id }}'
131+
}
132+
});

.github/workflows/javascript-tests.yml

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ on:
88
- '3.[89]'
99
- '[4-9].[0-9]'
1010
tags:
11-
- '3.[89]*'
12-
- '[4-9].[0-9]*'
11+
- '[0-9]+.[0-9]'
12+
- '[0-9]+.[0-9].[0-9]+'
13+
- '!3.7.[0-9]+'
1314
pull_request:
1415
branches:
1516
- trunk
@@ -18,7 +19,7 @@ on:
1819
paths:
1920
# Any change to a JavaScript file should run tests.
2021
- '**.js'
21-
# These files configure NPM. Changes could affect the outcome.
22+
# These files configure npm. Changes could affect the outcome.
2223
- 'package*.json'
2324
# This file configures ESLint. Changes could affect the outcome.
2425
- '.eslintignore'
@@ -45,7 +46,7 @@ jobs:
4546
# - Logs debug information about the GitHub Action runner.
4647
# - Installs NodeJS.
4748
# - Logs updated debug information.
48-
# _ Installs NPM dependencies.
49+
# _ Installs npm dependencies.
4950
# - Run the WordPress QUnit tests.
5051
test-js:
5152
name: QUnit Tests
@@ -55,7 +56,7 @@ jobs:
5556

5657
steps:
5758
- name: Checkout repository
58-
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
59+
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
5960

6061
- name: Log debug information
6162
run: |
@@ -64,8 +65,8 @@ jobs:
6465
git --version
6566
svn --version
6667
67-
- name: Install NodeJS
68-
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3.3.0
68+
- name: Set up Node.js
69+
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
6970
with:
7071
node-version-file: '.nvmrc'
7172
cache: npm
@@ -93,3 +94,33 @@ jobs:
9394
SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }}
9495
SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }}
9596
SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }}
97+
98+
failed-workflow:
99+
name: Failed workflow tasks
100+
runs-on: ubuntu-latest
101+
needs: [ test-js, slack-notifications ]
102+
if: |
103+
always() &&
104+
github.repository == 'WordPress/wordpress-develop' &&
105+
github.event_name != 'pull_request' &&
106+
github.run_attempt < 2 &&
107+
(
108+
needs.test-js.result == 'cancelled' || needs.test-js.result == 'failure'
109+
)
110+
111+
steps:
112+
- name: Dispatch workflow run
113+
uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6.4.0
114+
with:
115+
retries: 2
116+
retry-exempt-status-codes: 418
117+
script: |
118+
github.rest.actions.createWorkflowDispatch({
119+
owner: context.repo.owner,
120+
repo: context.repo.repo,
121+
workflow_id: 'failed-workflow.yml',
122+
ref: 'trunk',
123+
inputs: {
124+
run_id: '${{ github.run_id }}'
125+
}
126+
});

.github/workflows/phpunit-tests.yml

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ on:
77
- '3.[7-9]'
88
- '[4-9].[0-9]'
99
tags:
10-
- '3.[7-9]*'
11-
- '[4-9].[0-9]*'
10+
- '[0-9]+.[0-9]'
11+
- '[0-9]+.[0-9].[0-9]+'
1212
pull_request:
1313
branches:
1414
- trunk
@@ -30,7 +30,7 @@ env:
3030
LOCAL_DIR: build
3131
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }}
3232
COMPOSER_INSTALL: ${{ false }}
33-
# Controls which NPM script to use for running PHPUnit tests. Options ar `php` and `php-composer`.
33+
# Controls which npm script to use for running PHPUnit tests. Options ar `php` and `php-composer`.
3434
PHPUNIT_SCRIPT: php
3535
LOCAL_PHP_MEMCACHED: ${{ false }}
3636
SLOW_TESTS: 'external-http,media,restapi'
@@ -43,7 +43,7 @@ jobs:
4343
# - Checks out the repository.
4444
# - Logs debug information about the GitHub Action runner.
4545
# - Installs NodeJS.
46-
# _ Installs NPM dependencies.
46+
# _ Installs npm dependencies.
4747
# - Builds WordPress to run from the `build` directory.
4848
# - Creates a ZIP file of compiled WordPress.
4949
# - Uploads ZIP file as an artifact.
@@ -54,7 +54,7 @@ jobs:
5454

5555
steps:
5656
- name: Checkout repository
57-
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
57+
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
5858

5959
- name: Log debug information
6060
run: |
@@ -69,8 +69,8 @@ jobs:
6969
php -i
7070
locale -a
7171
72-
- name: Install NodeJS
73-
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3.3.0
72+
- name: Set up Node.js
73+
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
7474
with:
7575
node-version-file: '.nvmrc'
7676
cache: npm
@@ -82,13 +82,13 @@ jobs:
8282
run: npm run build
8383

8484
- name: Create ZIP artifact
85-
uses: thedoctor0/zip-release@09336613be18a8208dfa66bd57efafd9e2685657 # v0.6.2
85+
uses: thedoctor0/zip-release@a24011d8d445e4da5935a7e73c1f98e22a439464 # v0.7.1
8686
with:
8787
filename: built-wp-${{ github.sha }}.zip
8888
exclusions: '*.git* /*node_modules/* packagehash.txt'
8989

9090
- name: Upload build artifact
91-
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0
91+
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
9292
with:
9393
name: built-wp-${{ github.sha }}
9494
path: built-wp-${{ github.sha }}.zip
@@ -102,7 +102,7 @@ jobs:
102102
# - Downloads the built WordPress artifact from the previous job.
103103
# - Unzips the artifact.
104104
# - Installs NodeJS.
105-
# _ Installs NPM dependencies.
105+
# _ Installs npm dependencies.
106106
# - Configures caching for Composer.
107107
# _ Installs Composer dependencies (if desired).
108108
# - Logs Docker debug information (about the Docker installation within the runner).
@@ -202,15 +202,15 @@ jobs:
202202
echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV
203203
204204
- name: Download the built WordPress artifact
205-
uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 # v3.0.0
205+
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
206206
with:
207207
name: built-wp-${{ github.sha }}
208208

209209
- name: Unzip built artifact
210210
run: unzip built-wp-${{ github.sha }}.zip
211211

212-
- name: Install NodeJS
213-
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # v3.3.0
212+
- name: Set up Node.js
213+
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
214214
with:
215215
node-version-file: '.nvmrc'
216216
cache: npm
@@ -220,7 +220,7 @@ jobs:
220220

221221
- name: Cache Composer dependencies
222222
if: ${{ env.COMPOSER_INSTALL == true }}
223-
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # v3.0.4
223+
uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6
224224
env:
225225
cache-name: cache-composer-dependencies
226226
with:
@@ -301,7 +301,7 @@ jobs:
301301

302302
- name: Checkout the WordPress Test Reporter
303303
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/trunk' && matrix.report }}
304-
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # v3.0.2
304+
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
305305
with:
306306
repository: 'WordPress/phpunit-test-runner'
307307
path: 'test-runner'
@@ -332,3 +332,33 @@ jobs:
332332
SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }}
333333
SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }}
334334
SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }}
335+
336+
failed-workflow:
337+
name: Failed workflow tasks
338+
runs-on: ubuntu-latest
339+
needs: [ test-php, slack-notifications ]
340+
if: |
341+
always() &&
342+
github.repository == 'WordPress/wordpress-develop' &&
343+
github.event_name != 'pull_request' &&
344+
github.run_attempt < 2 &&
345+
(
346+
needs.test-php.result == 'cancelled' || needs.test-php.result == 'failure'
347+
)
348+
349+
steps:
350+
- name: Dispatch workflow run
351+
uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6.4.0
352+
with:
353+
retries: 2
354+
retry-exempt-status-codes: 418
355+
script: |
356+
github.rest.actions.createWorkflowDispatch({
357+
owner: context.repo.owner,
358+
repo: context.repo.repo,
359+
workflow_id: 'failed-workflow.yml',
360+
ref: 'trunk',
361+
inputs: {
362+
run_id: '${{ github.run_id }}'
363+
}
364+
});

0 commit comments

Comments
 (0)