From c510fb888579c53feca0b79d44e597e11c926c88 Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Sun, 26 Apr 2026 22:29:08 +0200 Subject: [PATCH] CI --- .gitea/workflows/ci.yml | 4 +++- .gitea/workflows/package.yml | 2 +- .gitea/workflows/sonarqube.yml | 4 +++- generate_bin2cpp.sh | 36 +++++++++++++++++++++++++++++----- 4 files changed, 38 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 581a3e5..f6ded1d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -29,9 +29,11 @@ jobs: - name: Build run: | - conan install . --remote=bigfootpackages -pr:h=${{ matrix.conan_profile }} -pr:b=${{ matrix.conan_profile }} --build=missing -s build_type=${{ matrix.build_type }} -o bin2cpp/*:build_tests=True + conan install . --remote=bigfootpackages -pr:h=${{ matrix.conan_profile }} -pr:b=./ConanProfiles/Tools/clang --build=missing -s:h build_type=${{ matrix.build_type }} + source ./build/${{ matrix.build_type }}/generators/conanbuild.sh cmake -S . -B ./build/${{ matrix.build_type }} --toolchain ./build/${{ matrix.build_type }}/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_UNITY_BUILD=${{ matrix.unity_build }} -G "Ninja" cmake --build build/${{ matrix.build_type }} --parallel $(nproc) + source ./build/${{ matrix.build_type }}/generators/deactivate_conanbuild.sh - name: Unit Tests run: | diff --git a/.gitea/workflows/package.yml b/.gitea/workflows/package.yml index e6df2c8..00ac848 100644 --- a/.gitea/workflows/package.yml +++ b/.gitea/workflows/package.yml @@ -37,7 +37,7 @@ jobs: --version=1.0.0 \ --user=bigfootdev \ --channel=${{ env.BRANCH_NAME }} \ - -pr:b=./ConanProfiles/clang -pr:h=./ConanProfiles/clang \ + -pr:b=./ConanProfiles/clang -pr:h=./ConanProfiles/Tools/clang \ --build=missing --remote=bigfootpackages CONAN_LOGIN_USERNAME=${ARTIFACTORY_USER} \ diff --git a/.gitea/workflows/sonarqube.yml b/.gitea/workflows/sonarqube.yml index 683929c..b782b4b 100644 --- a/.gitea/workflows/sonarqube.yml +++ b/.gitea/workflows/sonarqube.yml @@ -26,9 +26,11 @@ jobs: - name: Generate run: | conan profile detect - conan install . --remote=bigfootpackages -pr:h=./ConanProfiles/clang_coverage -pr:b=./ConanProfiles/clang_coverage --build=missing -s build_type=Debug + conan install . --remote=bigfootpackages -pr:h=./ConanProfiles/clang_coverage -pr:b=./ConanProfiles/Tools/clang --build=missing -s:h build_type=Debug + source ./build/${{ matrix.build_type }}/generators/conanbuild.sh cmake -S . -B ./build/Debug --toolchain ./build/Debug/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -G "Ninja" cmake --build build/Debug --parallel $(nproc) + source ./build/${{ matrix.build_type }}/generators/deactivate_conanbuild.sh - name: Clang-Tidy run: run-clang-tidy -p ./build/Debug/ >> tidy_result.txt diff --git a/generate_bin2cpp.sh b/generate_bin2cpp.sh index 60b0c09..a91f6b8 100755 --- a/generate_bin2cpp.sh +++ b/generate_bin2cpp.sh @@ -1,18 +1,44 @@ #!/usr/bin/env bash set -euo pipefail -# ─── Validate argument ──────────────────────────────────────────────────────── +# ─── Validate arguments ─────────────────────────────────────────────────────── +if [[ $# -lt 1 ]]; then + echo "Usage: $(basename "$0") [force|missing] [Release|RelWithDebInfo|Debug]" + echo " force - Rebuild all packages from source" + echo " missing - Only build packages not already cached" + echo " build_type (optional) - One of: Release, RelWithDebInfo, Debug" + echo " If omitted, all build types are processed" + exit 1 +fi + case "${1:-}" in force) build_option="--build=*" ;; missing) build_option="--build=missing" ;; *) - echo "Usage: $(basename "$0") [force|missing]" + echo "Usage: $(basename "$0") [force|missing] [Release|RelWithDebInfo|Debug]" echo " force - Rebuild all packages from source" echo " missing - Only build packages not already cached" exit 1 ;; esac +# ─── Validate optional build_type argument ──────────────────────────────────── +all_build_types=(Release RelWithDebInfo Debug) + +if [[ -n "${2:-}" ]]; then + case "${2}" in + Release|RelWithDebInfo|Debug) + build_types=("${2}") + ;; + *) + echo "ERROR: Invalid build type '${2}'. Must be one of: Release, RelWithDebInfo, Debug" + exit 1 + ;; + esac +else + build_types=("${all_build_types[@]}") +fi + # ─── Register remote (skip if already registered) ───────────────────────────── if conan remote list 2>/dev/null | grep -qi "bigfootpackages"; then echo "Conan remote 'bigfootpackages' already registered, skipping." @@ -33,7 +59,7 @@ conan_common=( ) # ─── Install dependencies for each build type ───────────────────────────────── -for build_type in Release RelWithDebInfo Debug; do +for build_type in "${build_types[@]}"; do echo echo "[${build_type}] Installing dependencies..." if ! conan install . "${conan_common[@]}" ${build_option} -s:h "build_type=${build_type}"; then @@ -44,13 +70,13 @@ for build_type in Release RelWithDebInfo Debug; do done echo -echo "All build types installed successfully." +echo "All selected build types installed successfully." # ─── Configure CMake for each build type ───────────────────────────────────── echo echo "Configuring CMake for each build type..." -for build_type in Release RelWithDebInfo Debug; do +for build_type in "${build_types[@]}"; do echo echo "[${build_type}] Activating build environment..." # shellcheck disable=SC1090