diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 19:30:47 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-02 19:31:15 +0300 |
| commit | b1e34e861b5d732afe828d58aad2c638135061fd (patch) | |
| tree | 6ab65910221ff147b1fdc49299418d8af04d0a7b /.github/workflows/json4cpp-ci.yml | |
| parent | c965a4ebddf98c368edd905324a4ecd79b2aae55 (diff) | |
| download | Project-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.yml | 166 |
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 |
