123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
- #
- # SPDX-License-Identifier: curl
- # This workflow contains checks at the source code level only.
- name: Source
- 'on':
- push:
- branches:
- - master
- - '*/ci'
- paths-ignore:
- - '**/*.md'
- - '.circleci/**'
- - 'appveyor.*'
- - 'plan9/**'
- - 'tests/data/**'
- - 'winbuild/**'
- pull_request:
- branches:
- - master
- paths-ignore:
- - '**/*.md'
- - '.circleci/**'
- - 'appveyor.*'
- - 'plan9/**'
- - 'tests/data/**'
- - 'winbuild/**'
- permissions: {}
- jobs:
- checksrc:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: check
- run: git ls-files -z "*.[ch]" | xargs -0 -n1 ./scripts/checksrc.pl
- codespell-cmakelint-pytype-ruff:
- runs-on: ubuntu-24.04
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: install
- env:
- DEBIAN_FRONTEND: noninteractive
- 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 \
- codespell python3-pip python3-networkx python3-pydot python3-yaml \
- python3-toml python3-markupsafe python3-jinja2 python3-tabulate \
- python3-typing-extensions python3-libcst python3-impacket \
- python3-websockets python3-pytest
- python3 -m pip install --break-system-packages cmakelint==1.4.3 pytype==2024.9.13 ruff==0.6.8
- - name: spellcheck
- run: |
- codespell \
- --skip scripts/mk-ca-bundle.pl \
- --skip src/tool_hugehelp.c \
- -I .github/scripts/codespell-ignore.txt \
- CMake include m4 scripts src lib
- - name: cmakelint
- run: scripts/cmakelint.sh
- - name: pytype
- run: find . -name '*.py' -exec pytype -j auto -k {} +
- - name: ruff
- run: ruff check --extend-select=B007,B016,C405,C416,COM818,D200,D213,D204,D401,D415,FURB129,N818,PERF401,PERF403,PIE790,PIE808,PLW0127,Q004,RUF010,SIM101,SIM117,SIM118,TRY400,TRY401
- reuse:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: REUSE Compliance Check
- uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5
- miscchecks:
- runs-on: ubuntu-24.04
- timeout-minutes: 5
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- persist-credentials: false
- name: checkout
- - name: shellcheck
- run: .github/scripts/shellcheck.sh
- - name: spacecheck
- run: .github/scripts/spacecheck.pl
- - name: yamlcheck
- run: .github/scripts/yamlcheck.sh
- - name: binarycheck
- run: .github/scripts/binarycheck.pl
- # we allow some extra in source code
- - name: badwords
- run: |
- grep -Ev '(\\bwill| url | dir )' .github/scripts/badwords.txt | \
- .github/scripts/badwords.pl $(git ls-files -- src lib include)
|