Repository navigation
ci: consolidate checks into single workflow with release-please gate #124
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
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
87d0633
ci: skip expensive checks on release-please branches
josephfusco d357f69
ci: consolidate checks into single workflow with release-please gate
josephfusco 3d5e8b5
ci: refactor into reusable workflows with a lean orchestrator
josephfusco fd23568
ci: pass only CODECOV_TOKEN to phpunit instead of inheriting all secrets
josephfusco 42afa2e
ci: pin action SHAs, scope permissions, and harden workflows
josephfusco a90401d
ci: declare CODECOV_TOKEN secret in phpunit workflow_call interface
josephfusco 1c24576
ci: suppress intentional zizmor findings with inline annotations
josephfusco bc0f7ee
ci: fix checkout version comment from v7 to v7.0.0
josephfusco File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| name: CI | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ main ] | ||
| pull_request: | ||
| branches: [ main ] | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: ci-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| gate: | ||
| runs-on: ubuntu-latest | ||
| if: ${{ !startsWith(github.head_ref, 'release-please--') && !startsWith(github.ref, 'refs/heads/release-please--') }} | ||
| steps: | ||
| - run: true | ||
|
|
||
| phpcs: | ||
| needs: gate | ||
| uses: ./.github/workflows/phpcs.yml | ||
|
|
||
| phpstan: | ||
| needs: gate | ||
| uses: ./.github/workflows/phpstan.yml | ||
|
|
||
| phpunit: | ||
| needs: gate | ||
| uses: ./.github/workflows/phpunit.yml | ||
| secrets: | ||
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | ||
|
|
||
| multisite: | ||
| needs: gate | ||
| uses: ./.github/workflows/multisite.yml | ||
|
|
||
| plugin-check: | ||
| needs: gate | ||
| uses: ./.github/workflows/plugin-check.yml | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,20 +1,7 @@ | ||
| name: Plugin Check | ||
|
|
||
| # Runs the WordPress.org Plugin Check suite against the staged plugin — | ||
| # the same checks the directory's automated review applies on submission. | ||
| # Surfaces missing `readme.txt` fields, license-header issues, forbidden | ||
| # function calls, and similar guideline violations before they become a | ||
| # submission blocker. | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ main ] | ||
| pull_request: | ||
| branches: [ main ] | ||
|
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
| workflow_call: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
@@ -23,56 +10,43 @@ jobs: | |
| plugin-check: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v7 | ||
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| with: | ||
| persist-credentials: false | ||
|
|
||
| - uses: shivammathur/setup-php@v2 | ||
| - uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | ||
| with: | ||
| php-version: '8.3' | ||
| tools: composer | ||
|
|
||
| # Match `release.yml` — no dev deps, optimized autoloader, scripts | ||
| # disabled — so what's checked is what would ship. | ||
| - run: composer install --no-dev --no-interaction --optimize-autoloader --no-scripts | ||
|
|
||
| - uses: actions/setup-node@v4 | ||
| - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | ||
| with: | ||
| node-version: '22' | ||
|
|
||
| - run: npm install -g @wordpress/[email protected] | ||
|
|
||
| # Avoids the intermittent 504s on api.github.com during wp-env's | ||
| # Docker build (PR #22). Authenticated requests dodge the issue. | ||
| - name: Authenticate composer to GitHub | ||
| run: composer config --global --auth github-oauth.github.com '${{ secrets.GITHUB_TOKEN }}' | ||
|
|
||
| # Build the plugin tree the same way `release.yml` does so | ||
| # plugin-check sees only what would actually ship — `.distignore` | ||
| # excludes `.wp-env.json`, the `*.dist` configs, tests, and other | ||
| # dev files that the live WP.org plugin directory wouldn't see. | ||
| - name: Build the plugin | ||
| - name: Build plugin | ||
| run: | | ||
| mkdir -p build/presence-api | ||
| rsync -a --exclude-from='.distignore' --exclude='build' ./ build/presence-api/ | ||
|
|
||
| # Point wp-env at the built tree instead of the repo root so the | ||
| # `presence-api` slug it loads is the directory plugin-check | ||
| # should be analyzing. | ||
| - name: Mount the built plugin into wp-env | ||
| - name: Configure wp-env to mount built plugin | ||
| run: | | ||
| cat > .wp-env.override.json <<'JSON' | ||
| { "plugins": [ "./build/presence-api" ] } | ||
| JSON | ||
|
|
||
| - run: wp-env start --update | ||
| - run: wp-env start | ||
|
|
||
| - name: Install Plugin Check inside wp-env | ||
| - name: Install Plugin Check | ||
| run: | | ||
| wp-env run cli wp plugin install plugin-check --activate | ||
| wp-env run cli wp plugin activate presence-api | ||
|
|
||
| # `strict-table` is the only built-in format that's human-readable | ||
| # in CI logs and exits non-zero when errors are found. (Plain | ||
| # `table` always exits 0 even with findings.) | ||
| - name: Run Plugin Check | ||
| run: | | ||
| wp-env run cli wp plugin check presence-api --format=strict-table | ||
| run: wp-env run cli wp plugin check presence-api --format=strict-table | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.