name: Check header guards on: push: branches: [devel] pull_request: permissions: contents: read jobs: build: # Set the type of machine to run on runs-on: ubuntu-26.04 steps: - name: Checkout source code uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: persist-credentials: false - name: Setup Dependencies uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: '3.12' # Every header is guarded with #pragma once, as the Progmasoft C++ Style # asks; the amalgamation script relies on it. - name: Check that every header starts its guard with pragma once run: | wrong_files=$(grep -rL --include='*.hpp' '^#pragma once' src/Progmasoft || true) if [[ $wrong_files ]]; then echo "Headers without #pragma once:" echo $wrong_files exit 1 fi - name: Check that there are no duplicated filenames run: | ./tools/scripts/checkDuplicateFilenames.py - name: Check that all source files have the correct license header run: | ./tools/scripts/checkLicense.py # third_party/ must be the pinned release archives, byte for byte. - name: Check that third_party matches its pinned archives run: | ./tools/scripts/updateThirdParty.py --check