From 0784662d4077b69401328dc8e204442ef50ac00d Mon Sep 17 00:00:00 2001 From: Jabber Developer Date: Thu, 19 Jun 2025 19:59:02 +0200 Subject: [PATCH] Fix workflow Current setup of the infratstrcture with DIND was causing issues with volume binding, leading to a false-positive error on code formatting check. This commit addresses the issue by removing dependency on a container, but at the same time it limits choice of formatting version. This fix does not address the underlying issue with the architecture. As an additional change, package versions are updated. --- .github/workflows/main.yml | 52 ++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 95560e36..dd40b9a5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,18 +20,20 @@ jobs: name: Linux steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Run tests run: | docker build -f Dockerfile.${{ matrix.flavor }} -t profanity . docker run profanity ./ci-build.sh code-style: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest name: Check coding style continue-on-error: true + env: + GITHUB_WORKSPACE: ${{ runner.workspace }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 # 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: | @@ -39,18 +41,48 @@ jobs: - name: Check auto types are initialized run: | grep -P 'auto_(char|gchar|gcharv|guchar|jid|sqlite|gfd|FILE)[\w *]*;$' -r src && exit -1 || true - - name: Run clang-format - uses: jidicula/clang-format-action@v4.11.0 - with: - clang-format-version: '16' - check-path: 'src' + + - name: Install clang-format + run: | + sudo apt-get update + sudo apt-get install -y clang-format + + - name: Run clang-format check + run: | + echo $(clang-format --version) + # Find all source files you care about + INCLUDE_REGEX='^.*\.((((c|C)(c|pp|xx|\+\+)?$)|((h|H)h?(pp|xx|\+\+)?$))|(ino|pde|proto|cu))$' + CHECK_PATH='src' + files=$(find "$CHECK_PATH" -name .git -prune -o -regextype posix-egrep -regex "$INCLUDE_REGEX" -print) + if [ -z "$files" ]; then + echo "✅ No source files found to check." + exit 0 + fi + + # Run clang-format in dry-run mode and collect any improperly formatted files + failed=0 + for file in $files; do + if ! output=$(clang-format --dry-run --Werror --style=file "$file" 2>&1); then + echo "❌ Failed on file: $file" + echo "$output" + echo "----------------------------------------" + failed=1 + fi + done + + if [ $failed -ne 0 ]; then + echo "🚫 One or more files are not properly formatted." + else + echo "✅ All files are properly formatted." + fi + exit $failed spell-check: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest name: Check spelling continue-on-error: true steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: install dependencies run: | sudo apt update