name: C++ on: pull_request: jobs: fmt: runs-on: alpine container: image: git.aramjonghu.dev/aramjonghu/zshell-ci:latest steps: - name: Checkout uses: actions/checkout@v4 - name: Format check run: | find . \( -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) \ -not -path './build/*' \ -exec clang-format -i --style=file {} + git diff --exit-code && echo "clang-format: passed" build: runs-on: alpine container: image: git.aramjonghu.dev/aramjonghu/zshell-ci:latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Configure run: cmake -B build -G Ninja -DENABLE_MODULES=plugin -DCMAKE_BUILD_TYPE=Release - name: Build run: ninja -C build clang-tidy: runs-on: alpine container: image: git.aramjonghu.dev/aramjonghu/zshell-ci:latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Configure run: cmake -B build -G Ninja -DENABLE_MODULES=plugin -DCMAKE_BUILD_TYPE=Release - name: Build run: ninja -C build - name: clang-tidy run: | sed -i 's/-mno-direct-extern-access //g' build/compile_commands.json set -o pipefail run-clang-tidy -p build -j $(nproc) -header-filter="Plugins/.*" 2>&1 | \ grep -v 'Suppressed\|non-user\|non-system\|unknown argument.*mno-direct\|Found compiler error\|warnings generated\.\|^Use -header-filter'