123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, 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/**'
- - '**.md'
- - 'docs/*'
- pull_request:
- branches:
- - master
- paths:
- - '.github/workflows/checkdocs.yml'
- - '.github/scripts/**'
- - '**.md'
- - 'docs/*'
- concurrency:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
- cancel-in-progress: true
- permissions: {}
- jobs:
- # proselint:
- # runs-on: ubuntu-latest
- # steps:
- # - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4
- # with:
- # persist-credentials: false
- # name: checkout
- #
- # - name: install prereqs
- # run: |
- # sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
- # sudo apt-get update -y
- # sudo apt-get install -y --no-install-suggests --no-install-recommends \
- # python3-proselint
- #
- # # config file help: https://github.com/amperser/proselint/
- # - name: create proselint config
- # run: |
- # cat <<JSON > $HOME/.proselintrc.json
- # {
- # "checks": {
- # "typography.diacritical_marks": false,
- # "typography.symbols": false,
- # "annotations.misc": false,
- # "security.password": false,
- # "misc.annotations": false
- # }
- # }
- # JSON
- #
- # - name: trim headers off all *.md files
- # run: git ls-files -z '*.md' | xargs -0 -n1 .github/scripts/trimmarkdownheader.pl
- #
- # - name: check prose
- # run: git ls-files -z '*.md' | grep -Evz 'CHECKSRC.md|DISTROS.md|curl_mprintf.md|CURLOPT_INTERFACE.md|interface.md' | xargs -0 proselint README
- #
- # # This is for CHECKSRC and files with aggressive exclamation mark needs
- # - name: create second proselint config
- # run: |
- # cat <<JSON > $HOME/.proselintrc.json
- # {
- # "checks": {
- # "typography.diacritical_marks": false,
- # "typography.symbols": false,
- # "typography.exclamation": false,
- # "lexical_illusions.misc": false,
- # "annotations.misc": false
- # }
- # }
- # JSON
- #
- # - name: check special prose
- # run: proselint docs/internals/CHECKSRC.md docs/libcurl/curl_mprintf.md docs/libcurl/opts/CURLOPT_INTERFACE.md docs/cmdline-opts/interface.md
- linkcheck:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: Run mdlinkcheck
- run: ./scripts/mdlinkcheck
- spellcheck:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: trim all man page *.md files
- run: find docs -name "*.md" ! -name "_*" -print0 | xargs -0 -n1 .github/scripts/cleancmd.pl
- - name: trim libcurl man page *.md files
- run: find docs/libcurl \( -name "curl_*.md" -o -name "libcurl*.md" \) -print0 | xargs -0 -n1 .github/scripts/cleanspell.pl
- - name: trim libcurl option man page *.md files
- run: find docs/libcurl/opts -name "CURL*.md" -print0 | xargs -0 -n1 .github/scripts/cleanspell.pl
- - name: trim cmdline docs markdown _*.md files
- run: find docs/cmdline-opts -name "_*.md" -print0 | xargs -0 -n1 .github/scripts/cleancmd.pl --no-header
- - name: setup the custom wordlist
- run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
- - name: Check Spelling
- uses: rojopolis/spellcheck-github-actions@403efe0642148e94ecb3515e89c767b85a32371a # v0
- with:
- config_path: .github/scripts/spellcheck.yaml
- badwords-synopsis:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: badwords
- run: .github/scripts/badwords.pl < .github/scripts/badwords.txt docs/*.md docs/libcurl/*.md docs/libcurl/opts/*.md docs/cmdline-opts/*.md docs/TODO docs/KNOWN_BUGS tests/*.md
- - name: verify-synopsis
- run: .github/scripts/verify-synopsis.pl docs/libcurl/curl*.md
- man-examples:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: render nroff versions
- run: autoreconf -fi && ./configure --without-ssl --without-libpsl && make -C docs
- - name: verify examples
- run: .github/scripts/verify-examples.pl docs/libcurl/curl*.3 docs/libcurl/opts/*.3
- miscchecks:
- runs-on: ubuntu-24.04
- timeout-minutes: 5
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: spacecheck
- run: .github/scripts/spacecheck.pl
|