fix(admin): accept pk/sk prefixed API keys in key validation #21
Workflow file for this run
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
| name: CI | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| generate-drift: | |
| name: OpenAPI generation drift | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| cache: 'npm' | |
| - run: npm ci | |
| - name: Regenerate from live OpenAPI | |
| run: npm run generate | |
| - name: Fail if generated code is stale | |
| run: git diff --exit-code src/Generated blocks/generated | |
| - name: Fail if distribution drifts between local zip and SVN deploy | |
| run: node bin/check-distignore.mjs | |
| - name: Fail if a mapped component is missing from the pinned UI build | |
| run: node bin/check-component-map.mjs | |
| lint: | |
| name: Lint and Plugin Check | |
| needs: [generate-drift] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.3' | |
| tools: composer | |
| coverage: none | |
| - run: composer install --prefer-dist --no-progress | |
| - run: vendor/bin/phpcs --standard=phpcs.xml.dist | |
| - run: vendor/bin/phpstan analyze --no-progress --memory-limit=1G | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| cache: 'npm' | |
| - run: npm ci | |
| - name: Prettier check | |
| run: npx prettier --check . | |
| - name: JS lint | |
| run: npm run lint:js | |
| - name: CSS lint | |
| run: npm run lint:css | |
| - run: npm run build:all | |
| # --update forces a fresh pull of plugin-check.latest-stable.zip; | |
| # without it wp-env reuses a stale cached copy and misses newer checks. | |
| - run: npx wp-env start --update | |
| - name: Plugin Check | |
| # Slug is the mounted plugin dir (the repo checkout dir), matching | |
| # the pre-push hook in lefthook.yml. Hardcoding a stale name silently | |
| # checks nothing. | |
| run: npx wp-env run cli wp plugin check "$(basename "$PWD")" --severity=5 | |
| test: | |
| name: PHPUnit (PHP ${{ matrix.php }} / WP ${{ matrix.wp }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php: ['7.4', '8.1', '8.3'] | |
| wp: ['6.5', 'latest'] | |
| include: | |
| - php: '8.3' | |
| wp: 'trunk' | |
| services: | |
| mysql: | |
| image: mariadb:10.6 | |
| env: | |
| MARIADB_ROOT_PASSWORD: root | |
| ports: ['3306:3306'] | |
| options: >- | |
| --health-cmd="mariadb-admin ping" | |
| --health-interval=10s | |
| --health-timeout=5s | |
| --health-retries=5 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: mysqli, zip, gd | |
| tools: composer, wp-cli | |
| coverage: none | |
| - run: composer install --prefer-dist --no-progress | |
| - run: sudo apt-get install -y -qq subversion | |
| - run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp }} | |
| - run: vendor/bin/phpunit | |
| build: | |
| name: Build distribution zip | |
| needs: [lint, test] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.3' | |
| tools: composer | |
| - run: composer install --no-dev --optimize-autoloader --prefer-dist | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| cache: 'npm' | |
| - run: npm ci | |
| - run: npm run build:all | |
| - run: npm run plugin-zip | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: roxyapi-plugin | |
| path: roxyapi.zip | |
| if-no-files-found: error | |
| # Single rollup context to require in branch protection. Requiring this one | |
| # job (instead of each matrix job by name) keeps the required-checks list | |
| # stable as the PHP/WP matrix changes, and makes a red CI block every merge, | |
| # dependabot auto-merge included. | |
| ci-success: | |
| name: CI success | |
| if: always() | |
| needs: [generate-drift, lint, test, build] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Require all gating jobs to pass | |
| run: | | |
| results="${{ needs.generate-drift.result }} ${{ needs.lint.result }} ${{ needs.test.result }} ${{ needs.build.result }}" | |
| echo "gating job results: $results" | |
| for r in $results; do | |
| if [ "$r" != "success" ]; then | |
| echo "::error::A gating job did not succeed ($r). Blocking merge." | |
| exit 1 | |
| fi | |
| done | |
| echo "all gating jobs passed" |