mirror of
git://develop.git.wordpress.org/
synced 2025-01-17 04:48:25 +01:00
fe3bc4af19
With a few exceptions, GitHub Actions workflows run using the version of the workflow file present in the commit SHA or Git ref for the triggering event. This is useful for maintaining different versions of a workflow file. In the case of WordPress where there are currently 25+ branches that could potentially receive a security fix, it creates a huge maintenance burden. When 3rd party actions are updated or features are deprecated on GitHub Actions, the required changes need to be backported to all of those branches. This takes considerable time and effort. This change converts Core’s workflow files to reusable ones. This allows the same workflow to be used for all (or most) branches, allowing the described maintenance updates to be made once in `trunk`. To keep track of which files are reusable vs. those that are responsible for holding the strategy matrix for that branch, reusable workflows are now prefixed with `reusable-`. Props johnbillion, swissspidy, jorbin, desrosj. Fixes #61213. git-svn-id: https://develop.svn.wordpress.org/trunk@58165 602fd350-edb4-49c9-b593-d223f7449a82
99 lines
3.2 KiB
YAML
99 lines
3.2 KiB
YAML
name: End-to-end Tests
|
|
|
|
on:
|
|
# The end-to-end test suite was introduced in WordPress 5.3.
|
|
push:
|
|
branches:
|
|
- trunk
|
|
- '5.[3-9]'
|
|
- '[6-9].[0-9]'
|
|
tags:
|
|
- '[0-9]+.[0-9]'
|
|
- '[0-9]+.[0-9].[0-9]+'
|
|
- '![34].[0-9].[0-9]+'
|
|
- '!5.[0-2].[0-9]+'
|
|
pull_request:
|
|
branches:
|
|
- trunk
|
|
- '5.[3-9]'
|
|
- '[6-9].[0-9]'
|
|
workflow_dispatch:
|
|
|
|
# Cancels all previous workflow runs for pull requests that have not completed.
|
|
concurrency:
|
|
# The concurrency group contains the workflow name and the branch name for pull requests
|
|
# or the commit hash for any other events.
|
|
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
# Disable permissions for all available scopes by default.
|
|
# Any needed permissions should be configured at the job level.
|
|
permissions: {}
|
|
|
|
env:
|
|
LOCAL_DIR: build
|
|
PUPPETEER_SKIP_DOWNLOAD: ${{ true }}
|
|
|
|
jobs:
|
|
# Runs the end-to-end test suite.
|
|
e2e-tests:
|
|
name: Test with SCRIPT_DEBUG ${{ matrix.LOCAL_SCRIPT_DEBUG && 'enabled' || 'disabled' }}
|
|
uses: WordPress/wordpress-develop/.github/workflows/reusable-end-to-end-tests.yml@trunk
|
|
permissions:
|
|
contents: read
|
|
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
LOCAL_SCRIPT_DEBUG: [ true, false ]
|
|
with:
|
|
LOCAL_SCRIPT_DEBUG: ${{ matrix.LOCAL_SCRIPT_DEBUG }}
|
|
|
|
slack-notifications:
|
|
name: Slack Notifications
|
|
uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk
|
|
permissions:
|
|
actions: read
|
|
contents: read
|
|
needs: [ e2e-tests ]
|
|
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 }}
|
|
|
|
failed-workflow:
|
|
name: Failed workflow tasks
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
actions: write
|
|
needs: [ e2e-tests, slack-notifications ]
|
|
if: |
|
|
always() &&
|
|
github.repository == 'WordPress/wordpress-develop' &&
|
|
github.event_name != 'pull_request' &&
|
|
github.run_attempt < 2 &&
|
|
(
|
|
contains( needs.*.result, 'cancelled' ) ||
|
|
contains( needs.*.result, 'failure' )
|
|
)
|
|
steps:
|
|
- name: Dispatch workflow run
|
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
|
with:
|
|
retries: 2
|
|
retry-exempt-status-codes: 418
|
|
script: |
|
|
github.rest.actions.createWorkflowDispatch({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
workflow_id: 'failed-workflow.yml',
|
|
ref: 'trunk',
|
|
inputs: {
|
|
run_id: '${{ github.run_id }}'
|
|
}
|
|
});
|