Make WordPress Core


Ignore:
Timestamp:
11/17/2023 06:22:49 PM (11 months ago)
Author:
desrosj
Message:

Build/Test Tools: Comment on PRs with WordPress Playground information.

After [56958], pull requests to wordpress-develop can be tested within a WordPress Playground instance. However this capability is not obvious.

This makes several updates to GitHub action workflows to avoid unnecessary extra runs/jobs while also commenting on pull requests with proper context for testing in Playground once a build is available for the PR.

Changes:

  • The build.yml workflow has been deleted. The WordPress build process is already being tested within the test-build-processes.yml workflow. Now that workflow will produce and upload the built artifact for the given PR.
  • A pull-request-comments.yml workflow has been added to handle the commenting. To avoid having multiple workflows that comment on PRs, the logic within the welcome-new-contributors.yml workflow has been merged into this one.
  • The pull_request event trigger lacks the needed permission to comment on or update pull requests. Instead of using pull_request_target to navigate around this, the test-build-processes.yml workflow will now use workflow_dispatch to initiate a run of the commenting workflow. This adds the ability to only comment on the PR when a build has been successfully created and uploaded as an artifact.

Props swissspidy, zieladam, jeffpaul.
See #59416.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/.github/workflows/test-build-processes.yml

    r56977 r57124  
    1515      - '3.[7-9]'
    1616      - '[4-9].[0-9]'
    17     paths:
    18       # These files configure npm. Changes could affect the outcome.
    19       - 'package*.json'
    20       # JavaScript files are built using npm.
    21       - '**.js'
    22       # CSS and SCSS files are built using npm.
    23       - '**.scss'
    24       - '**.css'
    25       # Changes to workflow files should always verify all workflows are successful.
    26       - '.github/workflows/**.yml'
    2717  workflow_dispatch:
    2818
     
    117107      directory: ${{ matrix.directory }}
    118108
     109  # Calls the Pull Request Commenting workflow to leave a comment detailing how to test the PR within WordPress Playground.
     110  playground-comment:
     111    name: Leave WordPress Playground details
     112    runs-on: ubuntu-latest
     113    permissions:
     114      actions: write
     115    needs: [ test-core-build-process, test-core-build-process-macos, test-gutenberg-build-process, test-gutenberg-build-process-macos ]
     116    if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name == 'pull_request' }}
     117
     118    steps:
     119      - name: Dispatch workflow run
     120        uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6.4.1
     121        with:
     122          retries: 2
     123          retry-exempt-status-codes: 418
     124          script: |
     125            github.rest.actions.createWorkflowDispatch({
     126              owner: context.repo.owner,
     127              repo: context.repo.repo,
     128              workflow_id: 'pull-request-comments.yml',
     129              ref: 'trunk',
     130              inputs: {
     131                pr_number: '${{ github.event.number }}'
     132              }
     133            });
     134
    119135  slack-notifications:
    120136    name: Slack Notifications
     
    123139      actions: read
    124140      contents: read
    125     needs: [ test-core-build-process, test-core-build-process-macos, test-gutenberg-build-process, test-gutenberg-build-process-macos ]
     141    needs: [ test-core-build-process, test-core-build-process-macos, test-gutenberg-build-process, test-gutenberg-build-process-macos, playground-comment ]
    126142    if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }}
    127143    with:
     
    138154    permissions:
    139155      actions: write
    140     needs: [ slack-notifications ]
     156    needs: [ playground-comment ]
    141157    if: |
    142158      always() &&
Note: See TracChangeset for help on using the changeset viewer.