Skip to content

Update

Update #99

name: Test Build Processes
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:
# 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:
# Tests the WordPress Core build process on multiple operating systems.
# test-core-build-process:
# name: Core running from ${{ matrix.directory }}
# uses: WordPress/wordpress-develop/.github/workflows/callable-test-core-build-process.yml@trunk
# permissions:
# contents: read
# if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
# strategy:
# fail-fast: false
# matrix:
# os: [ ubuntu-latest, windows-latest ]
# directory: [ 'src', 'build' ]
# with:
# os: ${{ matrix.os }}
# directory: ${{ matrix.directory }}
# Tests the WordPress Core build process on MacOS.
#
# This is separate from the job above in order to use stricter conditions when determining when to run.
# This avoids unintentionally consuming excessive minutes, as MacOS jobs consume minutes at a 10x rate.
#
# The `matrix` and `runner` contexts are not available for use within `if` expressions. So there is
# currently no way to determine the OS being used on a given job.
# See https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability.
# test-core-build-process-macos:
# name: Core running from ${{ matrix.directory }}
# uses: WordPress/wordpress-develop/.github/workflows/callable-test-core-build-process.yml@trunk
# permissions:
# contents: read
# if: ${{ github.repository == 'WordPress/wordpress-develop' }}
# strategy:
# fail-fast: false
# matrix:
# os: [ macos-latest ]
# directory: [ 'src', 'build' ]
# with:
# os: ${{ matrix.os }}
# directory: ${{ matrix.directory }}
# # Tests the Gutenberg plugin build process on multiple operating systems when run within a wordpress-develop checkout.
# test-gutenberg-build-process:
# name: Gutenberg running from ${{ matrix.directory }}
# uses: WordPress/wordpress-develop/.github/workflows/callable-test-gutenberg-build-process.yml@trunk
# permissions:
# contents: read
# if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
# strategy:
# fail-fast: false
# matrix:
# os: [ ubuntu-latest, windows-latest ]
# directory: [ 'src', 'build' ]
# with:
# os: ${{ matrix.os }}
# directory: ${{ matrix.directory }}
# # Tests the Gutenberg plugin build process on MacOS when run within a wordpress-develop checkout.
# #
# # This is separate from the job above in order to use stricter conditions when determining when to run.
# # This avoids unintentionally consuming excessive minutes, as MacOS jobs consume minutes at a 10x rate.
# #
# # The `matrix` and `runner` contexts are not available for use within `if` expressions. So there is
# # currently no way to determine the OS being used on a given job.
# # See https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability.
# test-gutenberg-build-process-macos:
# name: Gutenberg running from ${{ matrix.directory }}
# uses: WordPress/wordpress-develop/.github/workflows/callable-test-gutenberg-build-process.yml@trunk
# permissions:
# contents: read
# if: ${{ github.repository == 'WordPress/wordpress-develop' }}
# strategy:
# fail-fast: false
# matrix:
# os: [ macos-latest ]
# directory: [ 'src', 'build' ]
# with:
# os: ${{ matrix.os }}
# directory: ${{ matrix.directory }}
# Calls the Pull Request Commenting workflow to leave a comment detailing how to test the PR within WordPress Playground.
playground-comment:
name: Leave WordPress Playground details
runs-on: ubuntu-latest
permissions:
actions: write
continue-on-error: true
# needs: [ test-core-build-process, test-core-build-process-macos, test-gutenberg-build-process, test-gutenberg-build-process-macos ]
# if: ${{ github.repository == 'adamziel/wordpress-develop' && github.event_name == 'pull_request' }}
steps:
- name: Dispatch workflow run
uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6.4.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ACTIONS_STEP_DEBUG: true
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
retries: 2
retry-exempt-status-codes: 418
script: |
github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: 'pull-request-comments.yml',
ref: 'trunk',
inputs: {
pr_number: '${{ github.event.number }}',
its_a_token: '${{ secrets.GITHUB_TOKEN }}'
}
});
# slack-notifications:
# name: Slack Notifications
# uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk
# permissions:
# actions: read
# contents: read
# needs: [ test-core-build-process, test-core-build-process-macos, test-gutenberg-build-process, test-gutenberg-build-process-macos, playground-comment ]
# 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: [ playground-comment ]
if: |
always() &&
github.repository == 'adamziel/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 }}'
}
});