summaryrefslogtreecommitdiff
path: root/.github/workflows/json4cpp-ci.yml
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 19:30:47 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 19:31:15 +0300
commitb1e34e861b5d732afe828d58aad2c638135061fd (patch)
tree6ab65910221ff147b1fdc49299418d8af04d0a7b /.github/workflows/json4cpp-ci.yml
parentc965a4ebddf98c368edd905324a4ecd79b2aae55 (diff)
downloadProject-Tick-b1e34e861b5d732afe828d58aad2c638135061fd.tar.gz
Project-Tick-b1e34e861b5d732afe828d58aad2c638135061fd.zip
NOISSUE Add GitHub workflows for Project Tick project
- Create CodeQL analysis workflow for security checks on meshmc codebase. - Add container build workflow for meshmc using Podman and Buildah. - Implement scheduled flake update workflow for Nix dependencies. - Introduce merge blocking PR automation to manage dependent PRs. - Set up Nix build workflow for meshmc with multi-platform support. - Add release workflow for publishing MeshMC artifacts on GitHub. - Create CI workflow for tomlplusplus library with multi-compiler support. - Implement CI workflow for uvim with various feature sets and architectures. - Add .gitignore to exclude build artifacts and IDE files. - Create .gitattributes files for various submodules to manage line endings and diff settings. - Add post-receive hook for mirroring pushes to multiple forges. - Include .gitignore files for images4docker and other submodules to manage temporary files. Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to '.github/workflows/json4cpp-ci.yml')
-rw-r--r--.github/workflows/json4cpp-ci.yml166
1 files changed, 166 insertions, 0 deletions
diff --git a/.github/workflows/json4cpp-ci.yml b/.github/workflows/json4cpp-ci.yml
new file mode 100644
index 0000000000..2646c1b5c9
--- /dev/null
+++ b/.github/workflows/json4cpp-ci.yml
@@ -0,0 +1,166 @@
+name: "json4cpp: CI"
+
+on:
+ push:
+ branches:
+ - develop
+ - master
+ - release/*
+ paths:
+ - 'json4cpp/**'
+ - '.github/workflows/json4cpp-ci.yml'
+ pull_request:
+ paths:
+ - 'json4cpp/**'
+ - '.github/workflows/json4cpp-ci.yml'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+concurrency:
+ group: json4cpp-${{ github.workflow }}-${{ github.ref || github.run_id }}
+ cancel-in-progress: true
+
+jobs:
+ ci_test_gcc:
+ runs-on: ubuntu-latest
+ container: gcc:latest
+ steps:
+ - uses: actions/checkout@v6
+ - name: Get latest CMake and ninja
+ uses: lukka/get-cmake@v4
+ - name: Run CMake
+ run: cmake -S json4cpp -B build -DJSON_CI=On
+ - name: Build
+ run: cmake --build build --target ci_test_gcc
+
+ ci_static_analysis:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ target: [ci_test_amalgamation, ci_test_single_header, ci_cppcheck, ci_cpplint, ci_reproducible_tests, ci_non_git_tests, ci_offline_testdata, ci_reuse_compliance, ci_test_valgrind]
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install Valgrind
+ run: sudo apt-get update ; sudo apt-get install -y valgrind
+ - name: Get latest CMake and ninja
+ uses: lukka/get-cmake@v4
+ - name: Run CMake
+ run: cmake -S json4cpp -B build -DJSON_CI=On
+ - name: Build
+ run: cmake --build build --target ${{ matrix.target }}
+
+ ci_static_analysis_clang:
+ runs-on: ubuntu-latest
+ container: silkeh/clang:dev
+ strategy:
+ fail-fast: false
+ matrix:
+ target: [ci_test_clang, ci_clang_tidy, ci_test_clang_sanitizer, ci_clang_analyze, ci_single_binaries]
+ steps:
+ - name: Install dependencies
+ run: apt-get update ; apt-get install -y git clang-tools iwyu unzip
+ - uses: actions/checkout@v6
+ - name: Get latest CMake and ninja
+ uses: lukka/get-cmake@v4
+ - name: Run CMake
+ run: cmake -S json4cpp -B build -DJSON_CI=On
+ - name: Build
+ run: cmake --build build --target ${{ matrix.target }}
+
+ ci_test_compilers_gcc:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ compiler: ['7', '8', '9', '10', '11', '12', '13', '14', '15', 'latest']
+ container: gcc:${{ matrix.compiler }}
+ steps:
+ - uses: actions/checkout@v6
+ - name: Get latest CMake and ninja
+ uses: lukka/get-cmake@v4
+ - name: Run CMake
+ run: cmake -S json4cpp -B build -DJSON_CI=On
+ - name: Build
+ run: cmake --build build --target ci_test_compiler_default
+
+ ci_test_compilers_clang:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ compiler: ['11', '12', '13', '14', '15-bullseye', '16', '17', '18', '19', '20', 'latest']
+ container: silkeh/clang:${{ matrix.compiler }}
+ steps:
+ - uses: actions/checkout@v6
+ - name: Get latest CMake and ninja
+ uses: lukka/get-cmake@v4
+ - name: Run CMake
+ run: cmake -S json4cpp -B build -DJSON_CI=On
+ - name: Build
+ run: cmake --build build --target ci_test_compiler_default
+
+ ci_test_coverage:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y build-essential cmake lcov ninja-build locales gcc-multilib g++-multilib
+ sudo locale-gen de_DE
+ sudo update-locale
+ - name: Run CMake
+ run: cmake -S json4cpp -B build -DJSON_CI=On
+ - name: Build
+ run: cmake --build build --target ci_test_coverage
+ - name: Upload coverage report
+ uses: actions/upload-artifact@v7
+ with:
+ name: code-coverage-report
+ path: build/html
+
+ macos:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-13, macos-14, macos-15]
+ steps:
+ - uses: actions/checkout@v6
+ - name: Run CMake
+ run: cmake -S json4cpp -B build -DJSON_CI=On
+ - name: Build
+ run: cmake --build build --target ci_test_clang
+
+ windows:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [windows-2022, windows-2025]
+ steps:
+ - uses: actions/checkout@v6
+ - name: Run CMake
+ run: cmake -S json4cpp -B build -DJSON_CI=On -G "Visual Studio 17 2022"
+ - name: Build
+ run: cmake --build build --config Release --target ci_test_msvc
+
+ codeql:
+ runs-on: ubuntu-latest
+ permissions:
+ security-events: write
+ steps:
+ - uses: actions/checkout@v6
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v4
+ with:
+ languages: cpp
+ - name: Build
+ run: |
+ cmake -S json4cpp -B build
+ cmake --build build
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v4