mirror of
https://github.com/uutils/coreutils.git
synced 2025-12-23 08:47:37 +00:00
github action: add a check that uudoc works
This commit is contained in:
parent
6cc245db01
commit
28dde64d7e
1 changed files with 136 additions and 0 deletions
136
.github/workflows/documentation.yml
vendored
Normal file
136
.github/workflows/documentation.yml
vendored
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
# spell-checker:ignore dtolnay libsystemd libattr libcap gsub
|
||||
|
||||
name: Check uudoc Documentation Generation
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'src/bin/uudoc.rs'
|
||||
- 'src/uu/*/locales/en-US.ftl'
|
||||
- 'Cargo.toml'
|
||||
- '.github/workflows/documentation.yml'
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'src/bin/uudoc.rs'
|
||||
- 'src/uu/*/locales/en-US.ftl'
|
||||
- 'Cargo.toml'
|
||||
|
||||
jobs:
|
||||
check-doc:
|
||||
name: Verify uudoc generates correct documentation
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install/setup prerequisites
|
||||
shell: bash
|
||||
run: sudo apt-get -y update ; sudo apt-get -y install libselinux1-dev libsystemd-dev libacl1-dev libattr1-dev libcap-dev
|
||||
|
||||
- name: Install Rust toolchain
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
|
||||
- name: Download tldr
|
||||
run: curl https://tldr.sh/assets/tldr.zip -o docs/tldr.zip
|
||||
|
||||
- name: Generate documentation
|
||||
run: cargo run --bin uudoc --all-features
|
||||
|
||||
- name: Get current version from Cargo.toml
|
||||
id: version
|
||||
run: |
|
||||
VERSION=$(awk '/\[workspace\.package\]/{flag=1; next} flag && /version = /{gsub(/.*= "/, ""); gsub(/".*/, ""); print; exit}' Cargo.toml)
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
echo "Detected version: $VERSION"
|
||||
|
||||
- name: Check for --repeated option in uniq.md
|
||||
run: |
|
||||
if [ ! -f "docs/src/utils/uniq.md" ]; then
|
||||
echo "docs/src/utils/uniq.md does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -q -- "--repeated" docs/src/utils/uniq.md; then
|
||||
echo "'--repeated' option not found in docs/src/utils/uniq.md"
|
||||
echo "Content of uniq.md:"
|
||||
head -50 docs/src/utils/uniq.md
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Check for correct version in ls.md
|
||||
run: |
|
||||
VERSION="${{ steps.version.outputs.version }}"
|
||||
|
||||
if [ ! -f "docs/src/utils/ls.md" ]; then
|
||||
echo "docs/src/utils/ls.md does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -q "v(uutils coreutils) $VERSION" docs/src/utils/ls.md; then
|
||||
echo "Version '$VERSION' not found in docs/src/utils/ls.md"
|
||||
echo "Found version info:"
|
||||
grep "v(uutils coreutils)" docs/src/utils/ls.md || echo "No version info found"
|
||||
echo "Full version section:"
|
||||
grep -A2 -B2 "version" docs/src/utils/ls.md || echo "No version section found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Verify usage information is present
|
||||
run: |
|
||||
if [ ! -f "docs/src/utils/cat.md" ]; then
|
||||
echo "docs/src/utils/cat.md does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -q "cat \[OPTION\].*\[FILE\]" docs/src/utils/cat.md; then
|
||||
echo "Usage information missing from cat.md"
|
||||
echo "Content around usage:"
|
||||
grep -A5 -B5 "cat" docs/src/utils/cat.md | head -20
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Verify help text is properly resolved
|
||||
run: |
|
||||
if [ ! -f "docs/src/utils/cat.md" ]; then
|
||||
echo "docs/src/utils/cat.md does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if grep -q "cat-help-" docs/src/utils/cat.md; then
|
||||
echo "Found unresolved Fluent keys in cat.md - help text not properly translated"
|
||||
echo "Unresolved Fluent keys found:"
|
||||
grep "cat-help-" docs/src/utils/cat.md
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Verify about text is present
|
||||
run: |
|
||||
if [ ! -f "docs/src/utils/cat.md" ]; then
|
||||
echo "docs/src/utils/cat.md does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -q "Concatenate FILE(s)" docs/src/utils/cat.md; then
|
||||
echo "About text missing from cat.md"
|
||||
echo "Content of cat.md:"
|
||||
head -30 docs/src/utils/cat.md
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Verify tldr examples integration
|
||||
run: |
|
||||
if [ ! -f "docs/src/utils/cp.md" ]; then
|
||||
echo "docs/src/utils/cp.md does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -q "The examples are provided by" docs/src/utils/cp.md; then
|
||||
echo "tldr examples integration missing from cp.md"
|
||||
echo "Expected to find 'The examples are provided by' text"
|
||||
echo "Content of cp.md:"
|
||||
tail -20 docs/src/utils/cp.md
|
||||
exit 1
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue