checksrc: ensure using ifdef/ifndef when possible, fix fallouts
#5064
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright (C) Daniel Stenberg, <[email protected]>, et al. | |
| # | |
| # SPDX-License-Identifier: curl | |
| # This workflow contains tests that operate on documentation files only. Some | |
| # checks modify the source so they cannot be combined into a single job. | |
| name: 'Docs' | |
| 'on': | |
| push: | |
| branches: | |
| - master | |
| - '*/ci' | |
| paths: | |
| - '.github/workflows/checkdocs.yml' | |
| - '.github/scripts/**' | |
| - 'scripts/**' | |
| - '**.md' | |
| - 'docs/*' | |
| pull_request: | |
| branches: | |
| - master | |
| paths: | |
| - '.github/workflows/checkdocs.yml' | |
| - '.github/scripts/**' | |
| - 'scripts/**' | |
| - '**.md' | |
| - 'docs/*' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
| cancel-in-progress: true | |
| permissions: {} | |
| jobs: | |
| # config file help: https://github.com/amperser/proselint/ | |
| proselint: | |
| name: 'proselint' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: 'install prereqs' | |
| run: | | |
| python3 -m venv ~/venv | |
| ~/venv/bin/pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary -r .github/scripts/requirements-proselint.txt | |
| - name: 'trim headers off all *.md files' | |
| run: git ls-files '*.md' -z | xargs -0 -n1 .github/scripts/trimmarkdownheader.pl | |
| - name: 'check prose' | |
| run: | | |
| cat <<JSON > ~/.proselintrc.json | |
| { | |
| "checks": { | |
| "annotations.misc": false, | |
| "lexical_illusions": false, | |
| "misc.annotations": false, | |
| "redundancy.misc.garner": false, | |
| "security.password": false, | |
| "spelling.ve_of": false, | |
| "typography.diacritical_marks": false, | |
| "typography.symbols": false | |
| } | |
| } | |
| JSON | |
| source ~/venv/bin/activate | |
| git ls-files README '*.md' -z | grep -Evz '(CHECKSRC|DISTROS|CURLOPT_INTERFACE|interface)\.md' | xargs -0 proselint check -- | |
| - name: 'check special prose' # For CHECKSRC and files with aggressive exclamation mark needs | |
| run: | | |
| cat <<JSON > ~/.proselintrc.json | |
| { | |
| "checks": { | |
| "annotations.misc": false, | |
| "lexical_illusions": false, | |
| "typography.diacritical_marks": false, | |
| "typography.punctuation.exclamation": false, | |
| "typography.symbols": false | |
| } | |
| } | |
| JSON | |
| source ~/venv/bin/activate | |
| proselint check docs/internals/CHECKSRC.md docs/libcurl/opts/CURLOPT_INTERFACE.md docs/cmdline-opts/interface.md | |
| pyspelling: | |
| name: 'pyspelling' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: 'trim all *.md files in docs/' | |
| run: .github/scripts/cleancmd.pl 'docs/*.md' | |
| - name: 'install' | |
| run: | | |
| sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
| sudo apt-get -o Dpkg::Use-Pty=0 update | |
| sudo rm -f /var/lib/man-db/auto-update | |
| sudo apt-get -o Dpkg::Use-Pty=0 install aspell aspell-en | |
| python3 -m venv ~/venv | |
| ~/venv/bin/pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary -r .github/scripts/requirements-docs.txt | |
| - name: 'check spelling' | |
| run: | | |
| source ~/venv/bin/activate | |
| # setup the custom wordlist | |
| grep -v '^#' .github/scripts/pyspelling.words > wordlist.txt | |
| aspell --version | |
| pyspelling --version | |
| pyspelling --verbose --jobs 5 --config .github/scripts/pyspelling.yaml | |
| badwords-synopsis: | |
| name: 'badwords, synopsis' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: 'badwords' | |
| run: .github/scripts/badwords.pl -w .github/scripts/badwords.ok '**.md' packages/OS400/README.OS400 < .github/scripts/badwords.txt | |
| - name: 'verify synopsis' | |
| run: .github/scripts/verify-synopsis.pl docs/libcurl/curl*.md | |
| man-examples: | |
| name: 'man-examples' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: 'verify examples' | |
| run: .github/scripts/verify-examples.pl docs/libcurl/curl*.md docs/libcurl/opts/*.md | |
| miscchecks: | |
| name: 'spacecheck' | |
| runs-on: ubuntu-24.04-arm | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: 'spacecheck' | |
| run: .github/scripts/spacecheck.pl |