mirror of
https://github.com/curl/curl.git
synced 2026-04-14 00:51:42 +08:00
More cost-effective and seems as fast or faster than Intel. In particular, valgrind seems to be almost 2x fast. So fast the job pair could fit under 10 minutes if merged again (but would be the longest in GHA/Linux.) Installing packages is slightly slower. The package repo is Ubuntu's which is slower than the Azure mirror used on Intel (unless Azure is broken, which happened a lot last year). To add to more jobs, the locally built deps also need to be migrated. Also: - add workaround for failing sshd server on Linux arm runners, caused by world-writable `HOME` directory. Closes #20231
155 lines
4.9 KiB
YAML
155 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/**'
|
|
- '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-24.04-arm
|
|
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-24.04-arm
|
|
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
|