mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
The MySQL project has introduced a new versioning strategy with two types of releases: innovation and long-term support. While long-term support is a familiar concept, it’s not clear how innovation releases should be supported in various WordPress versions for a number of reasons. Mainly, innovation releases are very short-lived. Each one is only supported until the next innovation version is released with a goal of one per quarter. Even though these versions will have a short lifespan they are described as producton-grade and generally available. More discussion is needed to determine exactly how each WordPress release should support these new innovation releases. But while the parameters for proper support are determined, the PHPUnit tests can be run against these innovation releases to detect any potential problems or incompatibilities. This change adds the `8.1` and `8.2` innovation releases to the testing matrix for the PHPUnit test worfklow. Props johnbillion, jorbin. See #59779. git-svn-id: https://develop.svn.wordpress.org/trunk@57132 602fd350-edb4-49c9-b593-d223f7449a82
178 lines
5.7 KiB
YAML
178 lines
5.7 KiB
YAML
name: PHPUnit Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- trunk
|
|
- '3.[7-9]'
|
|
- '[4-9].[0-9]'
|
|
tags:
|
|
- '[0-9]+.[0-9]'
|
|
- '[0-9]+.[0-9].[0-9]+'
|
|
pull_request:
|
|
branches:
|
|
- trunk
|
|
- '3.[7-9]'
|
|
- '[4-9].[0-9]'
|
|
workflow_dispatch:
|
|
# Once weekly On Sundays at 00:00 UTC.
|
|
schedule:
|
|
- cron: '0 0 * * 0'
|
|
|
|
# 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: {}
|
|
|
|
jobs:
|
|
#
|
|
# Creates a PHPUnit test job for each PHP/MySQL combination.
|
|
#
|
|
test-with-mysql:
|
|
name: PHP ${{ matrix.php }}
|
|
uses: WordPress/wordpress-develop/.github/workflows/phpunit-tests-run.yml@trunk
|
|
permissions:
|
|
contents: read
|
|
secrets: inherit
|
|
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ]
|
|
db-type: [ 'mysql' ]
|
|
db-version: [ '5.7', '8.0', '8.1', '8.2' ]
|
|
multisite: [ false, true ]
|
|
memcached: [ false ]
|
|
|
|
include:
|
|
# Include jobs for PHP 7.4 with memcached.
|
|
- os: ubuntu-latest
|
|
php: '7.4'
|
|
db-type: 'mysql'
|
|
db-version: '5.7'
|
|
multisite: false
|
|
memcached: true
|
|
- os: ubuntu-latest
|
|
php: '7.4'
|
|
db-type: 'mysql'
|
|
db-version: '5.7'
|
|
multisite: true
|
|
memcached: true
|
|
# Report test results to the Host Test Results.
|
|
- os: ubuntu-latest
|
|
php: '7.4'
|
|
db-type: 'mysql'
|
|
db-version: '5.7'
|
|
multisite: false
|
|
memcached: false
|
|
report: true
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
php: ${{ matrix.php }}
|
|
db-type: ${{ matrix.db-type }}
|
|
db-version: ${{ matrix.db-version }}
|
|
multisite: ${{ matrix.multisite }}
|
|
memcached: ${{ matrix.memcached }}
|
|
phpunit-config: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }}
|
|
report: ${{ matrix.report || false }}
|
|
|
|
#
|
|
# Creates a PHPUnit test job for each PHP/MariaDB combination.
|
|
#
|
|
test-with-mariadb:
|
|
name: PHP ${{ matrix.php }}
|
|
uses: WordPress/wordpress-develop/.github/workflows/phpunit-tests-run.yml@trunk
|
|
permissions:
|
|
contents: read
|
|
secrets: inherit
|
|
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-latest ]
|
|
php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ]
|
|
db-type: [ 'mariadb' ]
|
|
db-version: [ '10.4', '10.6', '10.11', '11.0' ]
|
|
multisite: [ false, true ]
|
|
memcached: [ false ]
|
|
|
|
include:
|
|
# Include jobs for PHP 7.4 with memcached.
|
|
- os: ubuntu-latest
|
|
php: '7.4'
|
|
db-type: 'mariadb'
|
|
db-version: '11.0'
|
|
multisite: false
|
|
memcached: true
|
|
- os: ubuntu-latest
|
|
php: '7.4'
|
|
db-type: 'mariadb'
|
|
db-version: '11.0'
|
|
multisite: true
|
|
memcached: true
|
|
with:
|
|
os: ${{ matrix.os }}
|
|
php: ${{ matrix.php }}
|
|
db-type: ${{ matrix.db-type }}
|
|
db-version: ${{ matrix.db-version }}
|
|
multisite: ${{ matrix.multisite }}
|
|
memcached: ${{ matrix.memcached }}
|
|
phpunit-config: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }}
|
|
report: ${{ matrix.report || false }}
|
|
|
|
slack-notifications:
|
|
name: Slack Notifications
|
|
uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk
|
|
permissions:
|
|
actions: read
|
|
contents: read
|
|
needs: [ test-with-mysql, test-with-mariadb ]
|
|
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: [ 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@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6.4.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 }}'
|
|
}
|
|
});
|