Skip to content

CI: Add docbook-cs linting #18

CI: Add docbook-cs linting

CI: Add docbook-cs linting #18

Workflow file for this run

# https://docs.github.com/en/actions
name: "DocBook Lint"
on:
push:
branches:
- "master"
pull_request:
branches:
- "master"
permissions:
contents: "read"
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
jobs:
docbook-cs:
name: "DocBook Style Check"
runs-on: "ubuntu-latest"
strategy:
matrix:
language:
- "en"
steps:
- name: "Checkout php/doc-${{ matrix.language }}"
uses: "actions/checkout@v6"
with:
ref: "${{ github.event.pull_request.head.sha }}"
path: "${{ matrix.language }}"
fetch-depth: 50
- name: "Checkout php/doc-base"
uses: "actions/checkout@v6"
with:
path: "doc-base"
repository: "php/doc-base"
- name: "Fetch base branch with merge-base"
working-directory: "${{ matrix.language }}"
run: |
git fetch origin ${{ github.base_ref }} --depth=50
# Deepen until we find the merge-base (handles long-lived PRs)
for i in 1 2 3 4 5; do
if git merge-base origin/${{ github.base_ref }} HEAD >/dev/null 2>&1; then
break
fi
git fetch --deepen=100 origin ${{ github.base_ref }}
done
- name: "Setup PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: "8.5"
extensions: "dom, libxml, simplexml"
tools: composer:v2, cs2pr:^1.8
- name: "Build documentation"
run: |
php doc-base/configure.php \
--disable-libxml-check \
--enable-xml-details \
--redirect-stderr-to-stdout \
--with-lang=${{ matrix.language }}
- name: "Install docbook-cs"
working-directory: "${{ matrix.language }}"
run: composer require jordikroon/docbook-cs:^1.1
- name: "Run docbook-cs with diff"
working-directory: "${{ matrix.language }}"
run: |
set -o pipefail
git diff origin/${{ github.base_ref }}...HEAD | vendor/bin/docbook-cs \
--report=checkstyle \
--diff \
--no-colors > docbook-report.xml || true
- name: "Upload report"
if: ${{ ! cancelled() }}
uses: "actions/upload-artifact@v7"
with:
name: "docbook-report"
path: "${{ matrix.language }}/docbook-report.xml"
- name: "Annotate PR with violations"
if: ${{ ! cancelled() }}
working-directory: "${{ matrix.language }}"
run: cs2pr docbook-report.xml --colorize --prepend-filename