about summary refs log tree commit diff
path: root/.github/workflows/code-format.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/code-format.yml')
-rw-r--r--.github/workflows/code-format.yml36
1 files changed, 36 insertions, 0 deletions
diff --git a/.github/workflows/code-format.yml b/.github/workflows/code-format.yml
new file mode 100644
index 00000000..f24e652b
--- /dev/null
+++ b/.github/workflows/code-format.yml
@@ -0,0 +1,36 @@
+name: Formatting
+
+on:
+  push:
+    branches:
+      - stable
+      - dev
+  pull_request:
+    branches:
+      - dev # No need for stable-pull-request, as that equals dev-push
+
+jobs:
+  code-format-check:
+    name: Check code format
+    runs-on: ubuntu-22.04
+    container:
+      image: docker.io/aflplusplus/aflplusplus:dev
+      env:
+        LLVM_VERSION: 14 # Remove _after_ this branch's image is built and pushed. The new image will have this var in ENV.
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+      - name: Format
+        run: |
+          git config --global --add safe.directory /__w/AFLplusplus/AFLplusplus
+          apt-get update
+          apt-get install -y clang-format-${LLVM_VERSION}
+          update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-${LLVM_VERSION} 0
+          make code-format
+      - name: Check if code needed formatting
+        run: |
+          git --no-pager -c color.ui=always diff HEAD
+          if ! git diff HEAD --quiet; then
+            echo "[!] Please run 'make code-format' and push its changes."
+            exit 1
+          fi