Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Post a Playground preview link on every PR #5526

Closed
wants to merge 43 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
cc86b99
Post a Playground preview link on every PR
adamziel Oct 18, 2023
cd15a01
Adjust workflow name
adamziel Oct 18, 2023
5467e9f
Run on all pull requests
adamziel Oct 18, 2023
b69f9cb
Try a different approach
adamziel Oct 19, 2023
4c59bfd
Remove "identifier" variable
adamziel Oct 19, 2023
23b33ca
Update preview-comment.yml
adamziel Oct 19, 2023
c3844c2
Update preview-comment.yml
adamziel Oct 19, 2023
976b3da
Document the workflow better and change the trigger to pull_request_t…
adamziel Oct 24, 2023
844f736
Merge branch 'trunk' into preview-comment-on-every-pr
adamziel Oct 24, 2023
b21a8e6
Remove target: [ insert ] for a second to actually post a comment
adamziel Oct 24, 2023
554c478
Added types: [edited] to add the comment to the current PR
adamziel Oct 24, 2023
3a0ee37
Add a few more acticity types to test the PR
adamziel Oct 24, 2023
09da750
Set the action types to just opened
adamziel Oct 24, 2023
c870e2e
Try using `pull_request` with fine-tuned permissions.
desrosj Oct 25, 2023
1244202
Remove `opened` type filter to test commenting.
desrosj Oct 25, 2023
3672e21
Use `issues` permission for fine tuning.
desrosj Oct 25, 2023
02f9705
Add `write-all` to see if using `permissions` will even work.
desrosj Oct 25, 2023
d716862
Change back to `pull_request_target`.
desrosj Oct 25, 2023
cd26fdb
Remove `opened` type filter to test.
desrosj Oct 25, 2023
8d24079
Combine two related workflows into one and rename to WordPress Playgr…
desrosj Oct 25, 2023
e9374b7
Correct permissions for comment job.
desrosj Oct 25, 2023
d913a76
Improve comment wording.
desrosj Oct 25, 2023
fa3a482
Add `pull_request` just to test.
desrosj Oct 25, 2023
a4bb30d
Attempt to resolve invalid workflow warning.
desrosj Oct 25, 2023
c64e81a
Attempt to resolve invalid workflow warning, take 2.
desrosj Oct 25, 2023
99c4aac
Add a link to the limitations page in the docs.
desrosj Oct 25, 2023
b9f569b
Remove `pull_request` event that was just for testing.
desrosj Oct 25, 2023
78a3fb9
Detect the presence of a comment.
desrosj Oct 25, 2023
dd7fb9e
Fix typo.
desrosj Oct 25, 2023
37dd078
Add conditions to the commenting job to only run on wordpress-develop.
desrosj Oct 25, 2023
2e844a8
Update conditions using `pull_request` to `pull_request_target` instead.
desrosj Oct 25, 2023
e13bac3
Minor typo fixes.
desrosj Oct 25, 2023
e7bd004
Merge branch 'preview-comment-on-every-pr' of github.com:adamziel/wor…
desrosj Oct 25, 2023
8f4b730
Remove conditions preventing runs.
desrosj Oct 25, 2023
f38b808
Temporary branch for running.
desrosj Oct 25, 2023
8122aba
Correct syntax for setting the comment body.
desrosj Oct 26, 2023
7b9d143
Merge remote-tracking branch 'upstream/trunk' into preview-comment-on…
desrosj Oct 30, 2023
019625d
ZIP the built directory and upload as an artifact.
desrosj Oct 30, 2023
28bcd72
Remove path filtering for pull requests.
desrosj Oct 30, 2023
2a1f23a
Merge Welcome and Playground comment workflows.
desrosj Oct 30, 2023
e14e695
Add workflow call from test workflow and cleanup.
desrosj Oct 30, 2023
0afb3fe
Merge improvements.
desrosj Nov 14, 2023
49a4029
Revert a few test changes.
desrosj Nov 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 0 additions & 70 deletions .github/workflows/build.yml

This file was deleted.

14 changes: 14 additions & 0 deletions .github/workflows/callable-test-core-build-process.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ jobs:
# - Ensures version-controlled files are not modified or deleted.
# - Cleans up after building WordPress.
# - Ensures version-controlled files are not modified or deleted.
# - Creates a ZIP of the built WordPress files (when building to the build directory).
# - Uploads the ZIP as a GitHub Actions artifact (when building to the build directory).
build-process-tests:
name: Core running from ${{ inputs.directory }} / ${{ inputs.os == 'macos-latest' && 'MacOS' || inputs.os == 'windows-latest' && 'Windows' || 'Linux' }}
runs-on: ${{ inputs.os }}
Expand Down Expand Up @@ -71,3 +73,15 @@ jobs:

- name: Ensure version-controlled files are not modified or deleted during cleaning
run: git diff --exit-code

- name: Create ZIP of built files
if: ${{ inputs.directory == 'build' && 'ubuntu-latest' == inputs.os }}
run: zip -r wordpress.zip build/.

- name: Upload ZIP as a GitHub Actions artifact
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
if: ${{ inputs.directory == 'build' && 'ubuntu-latest' == inputs.os }}
with:
name: wordpress-build-${{ github.event_name == 'pull_request' && github.event.number || github.sha }}
path: wordpress.zip
if-no-files-found: error
128 changes: 128 additions & 0 deletions .github/workflows/pull-request-comments.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Responsible for making comments on pull requests, such as commenting for first time contributors.
name: Pull Request Comments

on:
pull_request_target:
types: [ 'opened' ]
workflow_dispatch:
inputs:
pr_number:
description: 'The pull request number to process.'
required: true
type: string

# 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_target' && github.head_ref || github.event_name == 'workflow_dispatch' && inputs.pr_number || 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:
# Comments on a pull request when the author is a first time contributor.
post-welcome-message:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
timeout-minutes: 5
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name == 'pull_request_target' }}

steps:
- uses: wow-actions/welcome@72817eb31cda1de60f51893d80e2e82ce57f7e76 # v1.3.0
with:
FIRST_PR_REACTIONS: 'hooray'
FIRST_PR_COMMENT: >
Hi @{{ author }}! 👋


Thank you for your contribution to WordPress! 💖


It looks like this is your first pull request to `wordpress-develop`. Here are a few things to be aware of that may help you out!


**No one monitors this repository for new pull requests.** Pull requests **must** be attached to a Trac ticket to be considered for inclusion in WordPress Core. To attach a pull request to a Trac ticket, please include the ticket's full URL in your pull request description.


**Pull requests are never merged on GitHub.** The WordPress codebase continues to be managed through the SVN repository that this GitHub repository mirrors. Please feel free to open pull requests to work on any contribution you are making.


More information about how GitHub pull requests can be used to contribute to WordPress can be found in [this blog post](https://make.wordpress.org/core/2020/02/21/working-on-trac-tickets-using-github-pull-requests/).


**Please include automated tests.** Including tests in your pull request is one way to help your patch be considered faster. To learn about WordPress' test suites, visit the [Automated Testing](https://make.wordpress.org/core/handbook/testing/automated-testing/) page in the handbook.


If you have not had a chance, please review the [Contribute with Code page](https://make.wordpress.org/core/handbook/contribute/) in the [WordPress Core Handbook](https://make.wordpress.org/core/handbook/).


The [Developer Hub](https://developer.wordpress.org/) also documents the various [coding standards](https://make.wordpress.org/core/handbook/best-practices/coding-standards/) that are followed:

- [PHP Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/)

- [CSS Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/css/)

- [HTML Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/html/)

- [JavaScript Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/javascript/)

- [Accessibility Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/accessibility/)

- [Inline Documentation Standards](https://developer.wordpress.org/coding-standards/inline-documentation-standards/)


Thank you,

The WordPress Project

# Leaves a comment on a pull request with a link to test the changes in a WordPress Playground instance.
playground-details:
name: Comment on a pull request with Playground details
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6.4.1
with:
script: |
// Comments are only added after the first successful build. Check for the presence of a comment and bail early.
const commentInfo = {
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.inputs.pr_number
};
const comments = ( await github.rest.issues.listComments( commentInfo ) ).data;

for ( const currentComment of comments ) {
if ( currentComment.user.type === 'Bot' && currentComment.body.includes( 'Test using WordPress Playground' ) ) {
return;
}
};

// No comment was found. Create one.
commentInfo.body = `## Test using WordPress Playground
The changes in this pull request can previewed and tested using a [WordPress Playground](https://developer.wordpress.org/playground/) instance.

[WordPress Playground](https://developer.wordpress.org/playground/) is an experimental project that creates a full WordPress instance entirely within the browser.

### Some things to be aware of
- The Plugin and Theme Directories cannot be accessed within Playground.
- All changes will be lost when closing a tab with a Playground instance.
- All changes will be lost when refreshing the page.
- A fresh instance is created each time the link below is clicked.
- Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
it's possible that the most recent build failed, or has not completed. Check the [list of workflow runs to be sure](https://github.com/WordPress/wordpress-develop/actions/workflows/wordpress-playground.yml).

For more details about these limitations and more, check out the [Limitations page](https://wordpress.github.io/wordpress-playground/limitations/) in the WordPress Playground documentation.

[Test this pull request with WordPress Playground](https://playground.wordpress.net/wordpress.html?pr=${ context.payload.inputs.pr_number }).
`;

github.rest.issues.createComment( commentInfo );
40 changes: 28 additions & 12 deletions .github/workflows/test-build-processes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,6 @@ on:
- trunk
- '3.[7-9]'
- '[4-9].[0-9]'
paths:
# These files configure npm. Changes could affect the outcome.
- 'package*.json'
# JavaScript files are built using npm.
- '**.js'
# CSS and SCSS files are built using npm.
- '**.scss'
- '**.css'
# Changes to workflow files should always verify all workflows are successful.
- '.github/workflows/**.yml'
workflow_dispatch:

# Cancels all previous workflow runs for pull requests that have not completed.
Expand Down Expand Up @@ -116,13 +106,39 @@ jobs:
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
needs: [ test-core-build-process, test-core-build-process-macos, test-gutenberg-build-process, test-gutenberg-build-process-macos ]
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name == 'pull_request' }}

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: 'pull-request-comments.yml',
ref: 'trunk',
inputs: {
pr_number: '${{ github.event.number }}'
}
});

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 ]
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' }}
Expand All @@ -137,7 +153,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
actions: write
needs: [ slack-notifications ]
needs: [ playground-comment ]
if: |
always() &&
github.repository == 'WordPress/wordpress-develop' &&
Expand Down
65 changes: 0 additions & 65 deletions .github/workflows/welcome-new-contributors.yml

This file was deleted.

Loading