diff --git a/.gitea/workflows/validate.yaml b/.gitea/workflows/validate.yaml new file mode 100644 index 0000000..92d79e8 --- /dev/null +++ b/.gitea/workflows/validate.yaml @@ -0,0 +1,50 @@ +name: Validate the build +run-name: ${{ gitea.actor }} is validating code with clang 19 +on: [push] + +jobs: + Validate-With-Modern-Clang: + runs-on: ubuntu-latest + container: + image: node:18-alpine + steps: + - run: echo "Starting validation process" + + - name: Install dependencies + run: | + apk add --no-cache git make bash + + # Install LLVM/Clang 19 from edge repository + echo "http://dl-cdn.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories + echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories + + apk update + apk add --no-cache llvm19 clang19 clang19-analyzer compiler-rt valgrind + + # Verify versions + echo "---------------------" + echo "Clang version:" + which clang-19 + which clang + clang --version + echo "---------------------" + echo "Valgrind version:" + valgrind --version + echo "---------------------" + + - name: Check out repository code + uses: actions/checkout@v4 + + - name: Show file structure + run: | + echo "pwd:" $(pwd) + echo -- + ls -lah + echo -- + tree + - name: Validate code + run: | + echo "Validating code with make validate..." + make validate + + - run: echo "Validation status is ${{ job.status }}." diff --git a/Makefile b/Makefile index 6d2cf6f..e567b37 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ CC=clang LD=clang -CFLAGS=-Wall -Wextra -Wpedantic -O0 -g3 -std=c23 -fno-omit-frame-pointer -fno-optimize-sibling-calls +CFLAGS=-Wall -Wextra -Wpedantic -O0 -g3 -std=c23 -fno-omit-frame-pointer -fno-optimize-sibling-calls -D_POSIX_C_SOURCE=200809L LDFLAGS?= SOURCES = $(shell find src/ -type f -name '*.c')