Skip to content

(Nearly) All status, debug, and progress output is now sent to STDERR instead of STDOUT #3962

(Nearly) All status, debug, and progress output is now sent to STDERR instead of STDOUT

(Nearly) All status, debug, and progress output is now sent to STDERR instead of STDOUT #3962

Workflow file for this run

name: Validate
on:
# Run on all pushes and on all pull requests.
push:
pull_request:
# Also run this workflow every Monday at 6:00 (to make sure the broken link check runs regularly).
schedule:
- cron: '0 6 * * 1'
# Allow manually triggering the workflow.
workflow_dispatch:
# Cancels all previous workflow runs for the same branch that have not yet completed.
concurrency:
# The concurrency group contains the workflow name and the branch name.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
checkxml:
name: Check XML files
runs-on: ubuntu-latest
# Don't run the cronjob in this workflow on forks.
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'PHPCSStandards')
steps:
- name: Checkout code
uses: actions/checkout@v4
# Validate the XSD file.
- name: Validate XSD against schema
uses: phpcsstandards/xmllint-validate@v1
with:
pattern: "phpcs.xsd"
xsd-url: "https://www.w3.org/2012/04/XMLSchema.xsd"
# Validate the XML ruleset files.
- name: Validate rulesets against schema
uses: phpcsstandards/xmllint-validate@v1
with:
pattern: "./src/Standards/*/ruleset.xml"
xsd-file: "phpcs.xsd"
# Validate the Documentation XML files.
- name: Validate documentation XML
uses: phpcsstandards/xmllint-validate@v1
with:
pattern: "./src/Standards/*/Docs/*/*Standard.xml"
xsd-url: "https://phpcsstandards.github.io/PHPCSDevTools/phpcsdocs.xsd"
# Validate dev tool related XML files.
- name: Validate Project PHPCS ruleset against schema
uses: phpcsstandards/xmllint-validate@v1
with:
pattern: "phpcs.xml.dist"
xsd-file: "phpcs.xsd"
- name: "Validate PHPUnit <= 9 config for well-formedness"
uses: phpcsstandards/xmllint-validate@v1
with:
pattern: "phpunit-lte9.xml.dist"
- name: "Validate PHPUnit 10+ config for well-formedness"
uses: phpcsstandards/xmllint-validate@v1
with:
pattern: "phpunit.xml.dist"
xml-cs:
name: 'XML Code style'
runs-on: ubuntu-latest
# Don't run the cronjob in this workflow on forks.
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'PHPCSStandards')
env:
XMLLINT_INDENT: ' '
steps:
- name: Checkout code
uses: actions/checkout@v4
# Updating the lists can fail intermittently, typically after Microsoft has released a new package.
# This should not be blocking for this job, so ignore any errors from this step.
# Ref: https://github.com/dotnet/core/issues/4167
- name: Update the available packages list
continue-on-error: true
run: sudo apt-get update
- name: Install xmllint
run: sudo apt-get install --no-install-recommends -y libxml2-utils
# Show XML violations inline in the file diff.
- name: Enable showing XML issues inline
uses: korelstar/xmllint-problem-matcher@v1
# Check the code-style consistency of the XML files.
- name: Check XML code style
run: |
diff -B ./phpcs.xml.dist <(xmllint --format "./phpcs.xml.dist")
diff -B ./src/Standards/Generic/ruleset.xml <(xmllint --format "./src/Standards/Generic/ruleset.xml")
diff -B ./src/Standards/PEAR/ruleset.xml <(xmllint --format "./src/Standards/PEAR/ruleset.xml")
diff -B ./src/Standards/PSR1/ruleset.xml <(xmllint --format "./src/Standards/PSR1/ruleset.xml")
diff -B ./src/Standards/PSR2/ruleset.xml <(xmllint --format "./src/Standards/PSR2/ruleset.xml")
diff -B ./src/Standards/PSR12/ruleset.xml <(xmllint --format "./src/Standards/PSR12/ruleset.xml")
diff -B ./src/Standards/Squiz/ruleset.xml <(xmllint --format "./src/Standards/Squiz/ruleset.xml")
diff -B ./src/Standards/Zend/ruleset.xml <(xmllint --format "./src/Standards/Zend/ruleset.xml")
yamllint:
name: 'Lint Yaml'
# Don't run the cronjob in this workflow on forks.
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'PHPCSStandards')
uses: PHPCSStandards/.github/.github/workflows/reusable-yamllint.yml@main
with:
strict: true
markdownlint:
name: 'Lint Markdown'
# Don't run the cronjob in this workflow on forks.
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'PHPCSStandards')
uses: PHPCSStandards/.github/.github/workflows/reusable-markdownlint.yml@main
remark:
name: 'QA Markdown'
# Don't run the cronjob in this workflow on forks.
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'PHPCSStandards')
uses: PHPCSStandards/.github/.github/workflows/reusable-remark.yml@main