From 199d83f5cce34043afcf53178f7f42a9e5dd2bc4 Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Wed, 13 Dec 2023 17:14:49 +0100 Subject: [PATCH] Make GitHub Actions enforce clang-format-clean code --- .github/workflows/clang_format.yml | 45 ++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .github/workflows/clang_format.yml diff --git a/.github/workflows/clang_format.yml b/.github/workflows/clang_format.yml new file mode 100644 index 0000000..1eef228 --- /dev/null +++ b/.github/workflows/clang_format.yml @@ -0,0 +1,45 @@ +# Copyright (c) 2023 Sebastian Pipping +# Licensed under Apache License Version 2.0 + +name: Enforce clang-format + +on: + pull_request: + push: + schedule: + - cron: '0 3 * * 5' # Every Friday at 3am + workflow_dispatch: + +# Minimum permissions for security +permissions: + contents: read + +jobs: + clang-format: + name: Enforce clang-format + runs-on: ubuntu-22.04 + env: + CLANG_MAJOR_VERSION: 17 + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Add Clang/LLVM repositories + run: |- + set -x + source /etc/os-release + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo add-apt-repository "deb http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-${CLANG_MAJOR_VERSION} main" + + - name: Install clang-format + run: |- + set -x + sudo apt-get update + sudo apt-get install --yes --no-install-recommends -V \ + clang-format-${CLANG_MAJOR_VERSION} + + - name: Enforce clang-format + run: |- + set -x + clang-format-${CLANG_MAJOR_VERSION} --version + clang-format-${CLANG_MAJOR_VERSION} -i *.c + git diff --exit-code # i.e. reject non-empty diff