about summary refs log tree commit diff
diff options
context:
space:
mode:
authorrhtenhove <rhtenhove@users.noreply.github.com>2022-07-04 14:32:48 -0400
committerGitHub <noreply@github.com>2022-07-04 14:32:48 -0400
commit6c9c8fdc651e3c3376f3ba6590c49424be1844d7 (patch)
treed656304dd91b8431c00c1cf8228dd83889042c5a
parent3e65e1a029c44b33a77ca04724335ee3ecd30e67 (diff)
downloadafl++-6c9c8fdc651e3c3376f3ba6590c49424be1844d7.tar.gz
check code formatting (#5)
-rwxr-xr-x.custom-format.py5
-rw-r--r--.github/workflows/ci.yml7
-rw-r--r--.github/workflows/code-format.yml36
-rw-r--r--.github/workflows/codeql-analysis.yml7
-rw-r--r--.github/workflows/rust_custom_mutator.yml7
-rw-r--r--Dockerfile4
6 files changed, 58 insertions, 8 deletions
diff --git a/.custom-format.py b/.custom-format.py
index 7ac63396..8c7ea404 100755
--- a/.custom-format.py
+++ b/.custom-format.py
@@ -19,6 +19,7 @@ import subprocess
 import sys
 import os
 import re
+import shutil
 
 # string_re = re.compile('(\\"(\\\\.|[^"\\\\])*\\")') # future use
 
@@ -26,6 +27,10 @@ with open(".clang-format") as f:
     fmt = f.read()
 
 CLANG_FORMAT_BIN = os.getenv("CLANG_FORMAT_BIN")
+
+if CLANG_FORMAT_BIN is None:
+    CLANG_FORMAT_BIN = shutil.which("clang-format")
+
 if CLANG_FORMAT_BIN is None:
     o = 0
     try:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 906267a0..4ca76f2d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -2,9 +2,12 @@ name: CI
 
 on:
   push:
-    branches: [stable, dev]
+    branches:
+      - stable
+      - dev
   pull_request:
-    branches: [stable, dev]
+    branches:
+      - dev # No need for stable-pull-request, as that equals dev-push
 
 jobs:
   linux:
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
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index ba6792b1..54934395 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -2,9 +2,12 @@ name: "CodeQL"
 
 on:
   push:
-    branches: [stable, dev]
+    branches:
+      - stable
+      - dev
   pull_request:
-    branches: [stable, dev]
+    branches:
+      - dev # No need for stable-pull-request, as that equals dev-push
 
 jobs:
   analyze:
diff --git a/.github/workflows/rust_custom_mutator.yml b/.github/workflows/rust_custom_mutator.yml
index eb3e2581..7c2f0c12 100644
--- a/.github/workflows/rust_custom_mutator.yml
+++ b/.github/workflows/rust_custom_mutator.yml
@@ -2,9 +2,12 @@ name: Rust Custom Mutators
 
 on:
   push:
-    branches: [ stable, dev ]
+    branches:
+      - stable
+      - dev
   pull_request:
-    branches: [ stable, dev ]
+    branches:
+      - dev # No need for stable-pull-request, as that equals dev-push
 
 jobs:
   test:
diff --git a/Dockerfile b/Dockerfile
index 29ca2a5f..a82fffdc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,8 +16,8 @@ RUN apt-get update && apt-get full-upgrade -y && \
     apt-get install -y --no-install-recommends wget ca-certificates && \
     rm -rf /var/lib/apt/lists/*
 
-ARG LLVM_VERSION=14
-ARG GCC_VERSION=12
+ENV LLVM_VERSION=14
+ENV GCC_VERSION=12
 
 RUN echo "deb [signed-by=/etc/apt/keyrings/llvm-snapshot.gpg.key] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-${LLVM_VERSION} main" > /etc/apt/sources.list.d/llvm.list && \
     wget -qO /etc/apt/keyrings/llvm-snapshot.gpg.key https://apt.llvm.org/llvm-snapshot.gpg.key