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 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 }}."