Update the gh workflow to pin clang-format to version 21. Mention the version we use in CONTRIBUTING.md. And hint to the workflow file if we want to change it.
76 lines
2.0 KiB
YAML
76 lines
2.0 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
flavor: [debian, fedora, ubuntu]
|
|
|
|
name: Linux
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Run tests
|
|
run: |
|
|
docker build -f Dockerfile.${{ matrix.flavor }} -t profanity .
|
|
docker run profanity ./ci-build.sh
|
|
|
|
linux-meson:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
flavor: [debian]
|
|
|
|
name: Linux-meson
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Run tests
|
|
run: |
|
|
docker build -f Dockerfile.${{ matrix.flavor }} -t profanity .
|
|
docker run profanity ./ci-meson-build.sh
|
|
|
|
code-style:
|
|
runs-on: ubuntu-22.04
|
|
name: Check coding style
|
|
continue-on-error: true
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
# if this check fails, you have to update the number of auto types known and the list of auto types in the check below
|
|
- name: Check auto types are up-to-date
|
|
run: |
|
|
[[ "$(find src -type f -name '*.[ch]' -exec awk '/^#define auto_[\W]*/ {print $2}' '{}' \; | sort -u | wc -l)" == "9" ]] || exit -1
|
|
- name: Check auto types are initialized
|
|
run: |
|
|
grep -P 'auto_(char|gchar|gcharv|gerror|guchar|jid|sqlite|gfd|FILE)[\w *]*;$' -r src && exit -1 || true
|
|
- name: Run clang-format
|
|
uses: jidicula/clang-format-action@v4.15.0
|
|
with:
|
|
clang-format-version: '21'
|
|
check-path: 'src'
|
|
|
|
spell-check:
|
|
runs-on: ubuntu-22.04
|
|
name: Check spelling
|
|
continue-on-error: true
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: install dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install -y --no-install-recommends codespell
|
|
- name: Check spelling
|
|
run: |
|
|
codespell
|