This now makes sure to trim off exact matches for curl symbols and long curl commanad line options instead of using pattern matching as before. This should catch typoed names (that still follow the pattern) better. The cleanspell.pl script is no longer used. cleancmd.pl is used for all markdown files. Closes #16504
160 lines
4.9 KiB
YAML
160 lines
4.9 KiB
YAML
# 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/mdlinkcheck'
|
|
- '/scripts/**'
|
|
- '**.md'
|
|
- 'docs/*'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- '.github/workflows/checkdocs.yml'
|
|
- '.github/scripts/**'
|
|
- '.github/scripts/mdlinkcheck'
|
|
- '**.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 -o Dpkg::Use-Pty=0 update
|
|
# sudo apt-get -o Dpkg::Use-Pty=0 install 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 *.md files in docs/
|
|
run: .github/scripts/cleancmd.pl $(find docs -name "*.md")
|
|
|
|
- name: setup the custom wordlist
|
|
run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
|
|
|
|
- name: Check Spelling
|
|
uses: rojopolis/spellcheck-github-actions@ed0756273a1658136c36d26e3d0353de35b98c8b # 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 `git ls-files '**.md'` docs/TODO docs/KNOWN_BUGS packages/OS400/README.OS400
|
|
|
|
- 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-arm
|
|
timeout-minutes: 5
|
|
steps:
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
|
with:
|
|
persist-credentials: false
|
|
name: checkout
|
|
|
|
- name: spacecheck
|
|
run: .github/scripts/spacecheck.pl
|