Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 0 additions & 29 deletions .github/workflows/check-whitespace.yml

This file was deleted.

94 changes: 94 additions & 0 deletions .github/workflows/docbook-cs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# https://docs.github.com/en/actions

Comment on lines +1 to +2
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# https://docs.github.com/en/actions

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I purposely added a newline here as this is consistent with integrate.yaml. If still preferred I can apply this change though.

name: "DocBook Lint"

on:
push:
branches:
- "master"
pull_request:
branches:
- "master"

permissions:
contents: "read"

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

Comment thread
jordikroon marked this conversation as resolved.
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

- 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 staabm/annotate-pull-request-from-checkstyle:^1.8

- 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: vendor/bin/cs2pr docbook-report.xml --colorize --prepend-filename
38 changes: 38 additions & 0 deletions docbookcs.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<docbookcs xmlns="https://jordikroon.github.io/docbook-cs/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jordikroon.github.io/docbook-cs/config
https://jordikroon.github.io/docbook-cs/config.xsd">

<project>
<directory alias="doc-en">en</directory>
<directory>doc-base</directory>
</project>

<sniffs>
<sniff class="DocbookCS\Sniff\SimparaSniff" />
<sniff class="DocbookCS\Sniff\ExceptionNameSniff" />
<sniff class="DocbookCS\Sniff\AttributeOrderSniff" />
<sniff class="DocbookCS\Sniff\WhitespaceSniff" />
</sniffs>

<paths>
<path>.</path>
</paths>

<entities>
<file>contributors.ent</file>
<file>extensions.ent</file>
<file>language-defs.ent</file>
<file>language-snippets.ent</file>
<directory>../doc-base/entities/</directory>
<file>../doc-base/temp/file-entities.ent</file>
<directory>../doc-base/temp/file-entities</directory>
</entities>

<exclude>
<pattern>*/wkhtmltox/bits/*</pattern>
<pattern>output/*</pattern>
</exclude>

</docbookcs>