Merge pull request #112 from pedro-mendonca/dependabot/npm_and_yarn/w… #254
This file contains 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: Coding Standards | |
on: | |
push: | |
branches: [ main, dev ] | |
pull_request: | |
branches: [ main, dev ] | |
paths: | |
# Any change to a PHP or Markdown file should run checks. | |
- '**.php' | |
- '**.md' | |
# These files configure NPM. Changes could affect the outcome. | |
- 'package*.json' | |
# These files configure Composer. Changes could affect the outcome. | |
- 'composer.*' | |
# This file configures Markdownlint. Changes could affect the outcome. | |
- '.markdownlint.json' | |
# This file configures PHPCS. Changes could affect the outcome. | |
- 'phpcs.xml.dist' | |
# Changes to workflow files should always verify all workflows are successful. | |
- '.github/workflows/*.yml' | |
# Allows you to run this workflow manually from the Actions tab. | |
workflow_dispatch: | |
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. | |
phpcs: | |
name: PHP coding standards | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up PHP | |
uses: shivammathur/[email protected] | |
with: | |
php-version: '7.4' # Results are the same across all versions, check only in the last stable version. | |
coverage: none | |
tools: cs2pr | |
env: | |
fail-fast: false | |
- name: Log debug information | |
run: | | |
php --version | |
composer --version | |
- name: Check syntax error in sources | |
run: find -L . -path ./vendor -prune -o -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l | |
- name: Validate composer.json and composer.lock | |
run: composer validate --strict | |
- name: Install Composer dependencies | |
uses: ramsey/composer-install@v3 | |
- name: Make Composer packages available globally | |
run: echo "${PWD}/vendor/bin" >> $GITHUB_PATH | |
- name: Log PHPCS debug information | |
run: composer phpcs-i | |
- name: Run the PHP code sniffer | |
continue-on-error: true | |
run: phpcs --report-full --report-checkstyle=./phpcs-report.xml | |
- name: Show PHPCS results in PR | |
run: cs2pr ./phpcs-report.xml | |
# Runs the Markdown coding standards checks. | |
# | |
# Performs the following steps: | |
# - Checks out the repository. | |
# - Installs NodeJS 16 with caching for NPM. | |
# - Logs updated debug information. | |
# _ Installs NPM dependencies using install-changed to hash the `package.json` file. | |
# - Run the Markdownlint checks. | |
md-cs: | |
name: MD coding standards | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/[email protected] | |
with: | |
node-version: 16 | |
cache: npm | |
- name: Log debug information | |
run: | | |
npm --version | |
node --version | |
- name: Install Dependencies | |
run: npm ci | |
- name: Run Markdown Lint | |
run: npm run lint:md:docs |