mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
This simplifies the caching of Composer dependencies in the coding standards and PHP compatibility workflows by using a published action. This combines 3 steps into 1 within these workflows. Because the Composer implementation within the PHPUnit test workflow is a bit specialized (`composer install` is run within the Docker container), caching has been left as is in that workflow. However, the cache key has been changed to include the version of PHP being tested. This will prevent incorrect versions of dependencies being present when they are required on jobs other than PHP 8. Props jrf. See #50401. git-svn-id: https://develop.svn.wordpress.org/trunk@49938 602fd350-edb4-49c9-b593-d223f7449a82
120 lines
3.5 KiB
YAML
120 lines
3.5 KiB
YAML
name: Coding Standards
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
# PHPCS checking was introduced in WordPress 5.1.
|
|
- '5.[1-9]'
|
|
- '[6-9].*'
|
|
pull_request:
|
|
|
|
jobs:
|
|
# Runs PHP coding standards checks.
|
|
#
|
|
# Violations are reported inline with annotations.
|
|
#
|
|
# Performs the following steps:
|
|
# - Checks out the repository.
|
|
# - Sets up PHP.
|
|
# - Logs debug information.
|
|
# - Installs Composer dependencies (use cache if possible).
|
|
# - Make Composer packages available globally.
|
|
# - Logs PHP_CodeSniffer debug information.
|
|
# - Runs PHPCS on the full codebase with warnings suppressed.
|
|
# - Runs PHPCS on the `tests` directory without warnings suppressed.
|
|
# - todo: Configure Slack notifications for failing scans.
|
|
phpcs:
|
|
name: PHP coding standards
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Set up PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '7.4'
|
|
coverage: none
|
|
tools: composer, cs2pr
|
|
|
|
- name: Log debug information
|
|
run: |
|
|
php --version
|
|
composer --version
|
|
|
|
- name: Install Composer dependencies
|
|
uses: ramsey/composer-install@v1
|
|
with:
|
|
composer-options: "--no-progress --no-ansi --no-interaction"
|
|
|
|
- name: Make Composer packages available globally
|
|
run: echo "${PWD}/vendor/bin" >> $GITHUB_PATH
|
|
|
|
- name: Log PHPCS debug information
|
|
run: phpcs -i
|
|
|
|
- name: Run PHPCS on all Core files
|
|
run: phpcs -q -n --report=checkstyle | cs2pr
|
|
|
|
- name: Check test suite files for warnings
|
|
run: phpcs tests -q --report=checkstyle | cs2pr
|
|
|
|
# Runs the JavaScript coding standards checks.
|
|
#
|
|
# Performs the following steps:
|
|
# - Checks out the repository.
|
|
# - Logs debug information about the runner container.
|
|
# - Installs NodeJS 12 (todo: install the version of NPM specified in the `.nvmrc` file to support older branches)
|
|
# - Sets up caching for NPM.
|
|
# - Logs updated debug information.
|
|
# _ Installs NPM dependencies using install-changed to hash the `package.json` file.
|
|
# - Run the WordPress JSHint checks.
|
|
# - todo: Configure Slack notifications for failing tests.
|
|
jshint:
|
|
name: JavaScript coding standards
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
|
env:
|
|
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }}
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Log debug information
|
|
run: |
|
|
npm --version
|
|
node --version
|
|
git --version
|
|
svn --version
|
|
|
|
- name: Install NodeJS
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 14
|
|
|
|
- name: Cache NodeJS modules
|
|
uses: actions/cache@v2
|
|
env:
|
|
cache-name: cache-node-modules
|
|
with:
|
|
# npm cache files are stored in `~/.npm` on Linux/macOS
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-npm-
|
|
|
|
- name: Log debug information
|
|
run: |
|
|
npm --version
|
|
node --version
|
|
|
|
- name: Install Dependencies
|
|
run: npx install-changed --install-command="npm ci"
|
|
|
|
- name: Run JSHint
|
|
run: npm run grunt jshint
|