Skip to content

ci test: add sniffer for docbook (Do not merge!) #25

ci test: add sniffer for docbook (Do not merge!)

ci test: add sniffer for docbook (Do not merge!) #25

Workflow file for this run

# https://docs.github.com/en/actions
name: "DocBook Lint"
on:
push:
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: "Checkout php/docbook-cs"
uses: "actions/checkout@v6"
with:
path: "docbook-cs"
repository: "php/docbook-cs"
- 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, cs2pr
- 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: "docbook-cs"
run: composer install --no-interaction --no-progress
- name: "Run docbook-cs with diff"
working-directory: "${{ matrix.language }}"
run: |
set -o pipefail
git diff origin/${{ github.base_ref }}...HEAD | php ../docbook-cs/bin/docbook-cs \
--report=checkstyle \
--diff \
--no-colors > docbook-report.xml
- 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