From fcfe48f3e9640000f3a67b222fe9e869d13ecc96 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 22 Mar 2026 10:27:29 +0100 Subject: [PATCH 01/17] use ccache for conan builds --- .../config/conan/profiles/android-35-x86_64 | 4 +- .../conan/profiles/macos-15-armv8-clang-14 | 3 ++ .../conan/profiles/macos-26-armv8-clang-14 | 3 ++ .../conan/profiles/ubuntu-24.04-clang-18 | 2 +- .../config/conan/profiles/ubuntu-24.04-gcc-14 | 2 +- .../conan/profiles/windows-2022-msvc-1940 | 3 ++ .github/workflows/build_test.yml | 38 +++++++++++-------- .github/workflows/publish.yml | 12 +++--- .github/workflows/tidy.yml | 23 ++++++++--- 9 files changed, 59 insertions(+), 31 deletions(-) diff --git a/.github/config/conan/profiles/android-35-x86_64 b/.github/config/conan/profiles/android-35-x86_64 index 3fecba7d7..e4a728926 100644 --- a/.github/config/conan/profiles/android-35-x86_64 +++ b/.github/config/conan/profiles/android-35-x86_64 @@ -29,7 +29,7 @@ tools.android:ndk_path={{android_home}}/ndk/{{ndk_version}} AR={{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar AS={{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-as RANLIB={{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib -CC={{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/{{cc}} -CXX={{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/{{cc}}++ +CC=ccache {{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/{{cc}} +CXX=ccache {{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/{{cc}}++ LD={{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/ld STRIP={{android_home}}/ndk/{{ndk_version}}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip diff --git a/.github/config/conan/profiles/macos-15-armv8-clang-14 b/.github/config/conan/profiles/macos-15-armv8-clang-14 index 2881663b0..1078bf1de 100644 --- a/.github/config/conan/profiles/macos-15-armv8-clang-14 +++ b/.github/config/conan/profiles/macos-15-armv8-clang-14 @@ -6,3 +6,6 @@ compiler.version=14 compiler.cppstd=20 compiler.libcxx=libc++ os=Macos + +[conf] +tools.build:compiler_executables={'c': 'ccache clang', 'cpp': 'ccache clang++'} diff --git a/.github/config/conan/profiles/macos-26-armv8-clang-14 b/.github/config/conan/profiles/macos-26-armv8-clang-14 index 2881663b0..1078bf1de 100644 --- a/.github/config/conan/profiles/macos-26-armv8-clang-14 +++ b/.github/config/conan/profiles/macos-26-armv8-clang-14 @@ -6,3 +6,6 @@ compiler.version=14 compiler.cppstd=20 compiler.libcxx=libc++ os=Macos + +[conf] +tools.build:compiler_executables={'c': 'ccache clang', 'cpp': 'ccache clang++'} diff --git a/.github/config/conan/profiles/ubuntu-24.04-clang-18 b/.github/config/conan/profiles/ubuntu-24.04-clang-18 index 1b4b601ef..703879d06 100644 --- a/.github/config/conan/profiles/ubuntu-24.04-clang-18 +++ b/.github/config/conan/profiles/ubuntu-24.04-clang-18 @@ -8,4 +8,4 @@ compiler.libcxx=libstdc++11 os=Linux [conf] -tools.build:compiler_executables={'c': 'clang-18', 'cpp': 'clang++-18'} +tools.build:compiler_executables={'c': 'ccache clang-18', 'cpp': 'ccache clang++-18'} diff --git a/.github/config/conan/profiles/ubuntu-24.04-gcc-14 b/.github/config/conan/profiles/ubuntu-24.04-gcc-14 index b50862e6b..dea1dddbd 100644 --- a/.github/config/conan/profiles/ubuntu-24.04-gcc-14 +++ b/.github/config/conan/profiles/ubuntu-24.04-gcc-14 @@ -8,4 +8,4 @@ compiler.libcxx=libstdc++11 os=Linux [conf] -tools.build:compiler_executables={'c': 'gcc-14', 'cpp': 'g++-14'} +tools.build:compiler_executables={'c': 'ccache gcc-14', 'cpp': 'ccache g++-14'} diff --git a/.github/config/conan/profiles/windows-2022-msvc-1940 b/.github/config/conan/profiles/windows-2022-msvc-1940 index cc618806f..425126da4 100644 --- a/.github/config/conan/profiles/windows-2022-msvc-1940 +++ b/.github/config/conan/profiles/windows-2022-msvc-1940 @@ -6,3 +6,6 @@ compiler.version=194 compiler.cppstd=20 compiler.runtime=dynamic os=Windows + +[conf] +tools.build:compiler_executables={'c': 'ccache msvc', 'cpp': 'ccache msvc'} diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 2efdd3b4c..a93bb0b7a 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -51,19 +51,9 @@ jobs: run: yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{ matrix.ndk_version }}' - name: conan remote - run: | - conan remote remove "*" - conan remote add conancenter https://center2.conan.io - conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan + run: conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan - name: conan config run: conan config install .github/config/conan - - name: conan install - run: > - conan install . - --lockfile conan.lock - --profile:host '${{ matrix.host_profile }}' - --profile:build '${{ matrix.build_profile }}' - --build=missing - name: cache uses: actions/cache@v4 @@ -75,6 +65,14 @@ jobs: restore-keys: | ${{ matrix.host_profile }}- + - name: conan install + run: > + conan install . + --lockfile conan.lock + --profile:host '${{ matrix.host_profile }}' + --profile:build '${{ matrix.build_profile }}' + --build "*" + - name: cmake if: runner.os != 'Windows' run: > @@ -313,22 +311,32 @@ jobs: - name: conan odrcore run: conan export . --name odrcore --version 0.0.0 + - name: cache + uses: actions/cache@v4 + with: + path: | + ~/.ccache + /Users/runner/Library/Caches/ccache + key: ${{ matrix.host_profile }}-${{ env.CCACHE_KEY_SUFFIX }} + restore-keys: | + ${{ matrix.host_profile }}- + - name: conan install run: > conan install . --lockfile conan.lock --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' - --output-folder=build - --build=missing + --output-folder build + --build "*" - name: conan downstream run: > conan install test/downstream --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' - --output-folder=test/downstream/build - --build=missing + --output-folder test/downstream/build + --build "*" - name: cmake run: > diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f10507126..4abe3cdcf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -27,29 +27,27 @@ jobs: run: echo "VERSION=${GITHUB_REF_NAME:1}" >> $GITHUB_ENV - name: conan remote - run: | - conan remote remove "*" - conan remote add conancenter https://center2.conan.io - conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan + run: conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan - name: conan config run: conan config install .github/config/conan + - name: conan install run: > conan install . --lockfile conan.lock --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' - --build=missing + --build "*" - name: create conan package run: > conan create . - --lockfile conan.lock + --lockfile=conan.lock --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' --name odrcore --version ${VERSION} - --build missing + --build "*" - name: conan login run: conan remote login odr admin --password ${{ secrets.ARTIFACTORY }} diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index 9ebfda1c4..e34b1407e 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -6,6 +6,11 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true +env: + CCACHE_DIR: ${{ github.workspace }}/ccache + CCACHE_MAXSIZE: 500M + CCACHE_KEY_SUFFIX: r22 + jobs: build: runs-on: ${{ matrix.os }} @@ -28,19 +33,27 @@ jobs: run: pip install --upgrade pip conan - name: conan remote - run: | - conan remote remove "*" - conan remote add conancenter https://center2.conan.io - conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan + run: conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan - name: conan config run: conan config install .github/config/conan + + - name: cache + uses: actions/cache@v4 + with: + path: | + ~/.ccache + /Users/runner/Library/Caches/ccache + key: ${{ matrix.host_profile }}-${{ env.CCACHE_KEY_SUFFIX }} + restore-keys: | + ${{ matrix.host_profile }}- + - name: conan install run: > conan install . --lockfile conan.lock --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' - --build=missing + --build "*" - name: cmake run: > From d1244027c0aa71e3a8ddc41a320f561b18f6d1c4 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 22 Mar 2026 10:42:05 +0100 Subject: [PATCH 02/17] try again --- .github/config/conan/profiles/android-35-x86_64 | 1 + .github/config/conan/profiles/macos-15-armv8-clang-14 | 7 ++++++- .github/config/conan/profiles/macos-26-armv8-clang-14 | 7 ++++++- .github/config/conan/profiles/ubuntu-24.04-clang-18 | 7 ++++++- .github/config/conan/profiles/ubuntu-24.04-gcc-14 | 7 ++++++- .github/config/conan/profiles/windows-2022-msvc-1940 | 7 ++++++- 6 files changed, 31 insertions(+), 5 deletions(-) diff --git a/.github/config/conan/profiles/android-35-x86_64 b/.github/config/conan/profiles/android-35-x86_64 index e4a728926..2f98cd06a 100644 --- a/.github/config/conan/profiles/android-35-x86_64 +++ b/.github/config/conan/profiles/android-35-x86_64 @@ -21,6 +21,7 @@ compiler.libcxx=c++_shared [conf] tools.android:ndk_path={{android_home}}/ndk/{{ndk_version}} +tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} [buildenv] # Cross compile toolchain evn vars are required to build diff --git a/.github/config/conan/profiles/macos-15-armv8-clang-14 b/.github/config/conan/profiles/macos-15-armv8-clang-14 index 1078bf1de..64b597da4 100644 --- a/.github/config/conan/profiles/macos-15-armv8-clang-14 +++ b/.github/config/conan/profiles/macos-15-armv8-clang-14 @@ -8,4 +8,9 @@ compiler.libcxx=libc++ os=Macos [conf] -tools.build:compiler_executables={'c': 'ccache clang', 'cpp': 'ccache clang++'} +tools.build:compiler_executables={'c': 'clang', 'cpp': 'clang++'} +tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} + +[buildenv] +CC=ccache clang +CXX=ccache clang++ diff --git a/.github/config/conan/profiles/macos-26-armv8-clang-14 b/.github/config/conan/profiles/macos-26-armv8-clang-14 index 1078bf1de..64b597da4 100644 --- a/.github/config/conan/profiles/macos-26-armv8-clang-14 +++ b/.github/config/conan/profiles/macos-26-armv8-clang-14 @@ -8,4 +8,9 @@ compiler.libcxx=libc++ os=Macos [conf] -tools.build:compiler_executables={'c': 'ccache clang', 'cpp': 'ccache clang++'} +tools.build:compiler_executables={'c': 'clang', 'cpp': 'clang++'} +tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} + +[buildenv] +CC=ccache clang +CXX=ccache clang++ diff --git a/.github/config/conan/profiles/ubuntu-24.04-clang-18 b/.github/config/conan/profiles/ubuntu-24.04-clang-18 index 703879d06..fafeefc8c 100644 --- a/.github/config/conan/profiles/ubuntu-24.04-clang-18 +++ b/.github/config/conan/profiles/ubuntu-24.04-clang-18 @@ -8,4 +8,9 @@ compiler.libcxx=libstdc++11 os=Linux [conf] -tools.build:compiler_executables={'c': 'ccache clang-18', 'cpp': 'ccache clang++-18'} +tools.build:compiler_executables={'c': 'clang-18', 'cpp': 'clang++-18'} +tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} + +[buildenv] +CC=ccache clang-18 +CXX=ccache clang++-18 diff --git a/.github/config/conan/profiles/ubuntu-24.04-gcc-14 b/.github/config/conan/profiles/ubuntu-24.04-gcc-14 index dea1dddbd..b0191edee 100644 --- a/.github/config/conan/profiles/ubuntu-24.04-gcc-14 +++ b/.github/config/conan/profiles/ubuntu-24.04-gcc-14 @@ -8,4 +8,9 @@ compiler.libcxx=libstdc++11 os=Linux [conf] -tools.build:compiler_executables={'c': 'ccache gcc-14', 'cpp': 'ccache g++-14'} +tools.build:compiler_executables={'c': 'gcc-14', 'cpp': 'g++-14'} +tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} + +[buildenv] +CC=ccache g++-14 +CXX=ccache g++-14 diff --git a/.github/config/conan/profiles/windows-2022-msvc-1940 b/.github/config/conan/profiles/windows-2022-msvc-1940 index 425126da4..4a74ff921 100644 --- a/.github/config/conan/profiles/windows-2022-msvc-1940 +++ b/.github/config/conan/profiles/windows-2022-msvc-1940 @@ -8,4 +8,9 @@ compiler.runtime=dynamic os=Windows [conf] -tools.build:compiler_executables={'c': 'ccache msvc', 'cpp': 'ccache msvc'} +tools.build:compiler_executables={'c': 'msvc', 'cpp': 'msvc'} +tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} + +[buildenv] +CC=ccache msvc +CXX=ccache msvc From 87d6f22bb4f407b1a4a9e3bc1dde8541f1bad5c8 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 22 Mar 2026 11:16:44 +0100 Subject: [PATCH 03/17] fetch conan-odr-index --- .github/workflows/build_test.yml | 19 +++++++++++++++---- .github/workflows/publish.yml | 12 ++++++++++-- .github/workflows/tidy.yml | 10 ++++++++-- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index a93bb0b7a..38abf1811 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -10,6 +10,7 @@ env: CCACHE_DIR: ${{ github.workspace }}/ccache CCACHE_MAXSIZE: 500M CCACHE_KEY_SUFFIX: r22 + CONAN_ODR_INDEX_REF: 4c017e76b56d6972564bd6d704a8843076b94f32 jobs: build: @@ -50,8 +51,13 @@ jobs: if: startsWith(matrix.host_profile, 'android') run: yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{ matrix.ndk_version }}' - - name: conan remote - run: conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan + - name: fetch conan-odr-index + uses: actions/checkout@v4 + with: + repository: opendocument-app/conan-odr-index + ref: ${{ env.CONAN_ODR_INDEX_REF }} + - name: export conan-odr-index + run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config run: conan config install .github/config/conan @@ -303,8 +309,13 @@ jobs: if: startsWith(matrix.host_profile, 'android') run: yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{ matrix.ndk_version }}' - - name: conan remote - run: conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan + - name: fetch conan-odr-index + uses: actions/checkout@v4 + with: + repository: opendocument-app/conan-odr-index + ref: ${{ env.CONAN_ODR_INDEX_REF }} + - name: export conan-odr-index + run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config run: conan config install .github/config/conan diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4abe3cdcf..7ec433a5b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,6 +4,9 @@ on: release: types: [published] +env: + CONAN_ODR_INDEX_REF: 4c017e76b56d6972564bd6d704a8843076b94f32 + jobs: build: runs-on: ${{ matrix.os }} @@ -26,8 +29,13 @@ jobs: - name: get version run: echo "VERSION=${GITHUB_REF_NAME:1}" >> $GITHUB_ENV - - name: conan remote - run: conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan + - name: fetch conan-odr-index + uses: actions/checkout@v4 + with: + repository: opendocument-app/conan-odr-index + ref: ${{ env.CONAN_ODR_INDEX_REF }} + - name: export conan-odr-index + run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config run: conan config install .github/config/conan diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index e34b1407e..077145009 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -10,6 +10,7 @@ env: CCACHE_DIR: ${{ github.workspace }}/ccache CCACHE_MAXSIZE: 500M CCACHE_KEY_SUFFIX: r22 + CONAN_ODR_INDEX_REF: 4c017e76b56d6972564bd6d704a8843076b94f32 jobs: build: @@ -32,8 +33,13 @@ jobs: - name: install python dependencies run: pip install --upgrade pip conan - - name: conan remote - run: conan remote add odr https://artifactory.opendocument.app/artifactory/api/conan/conan + - name: fetch conan-odr-index + uses: actions/checkout@v4 + with: + repository: opendocument-app/conan-odr-index + ref: ${{ env.CONAN_ODR_INDEX_REF }} + - name: export conan-odr-index + run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config run: conan config install .github/config/conan From c94d18a5d1b6bac4e0d9542ad955b7a9961ac26c Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 22 Mar 2026 11:22:04 +0100 Subject: [PATCH 04/17] remove ref --- .github/workflows/build_test.yml | 3 --- .github/workflows/publish.yml | 4 ---- .github/workflows/tidy.yml | 2 -- 3 files changed, 9 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 38abf1811..c62dd794d 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -10,7 +10,6 @@ env: CCACHE_DIR: ${{ github.workspace }}/ccache CCACHE_MAXSIZE: 500M CCACHE_KEY_SUFFIX: r22 - CONAN_ODR_INDEX_REF: 4c017e76b56d6972564bd6d704a8843076b94f32 jobs: build: @@ -55,7 +54,6 @@ jobs: uses: actions/checkout@v4 with: repository: opendocument-app/conan-odr-index - ref: ${{ env.CONAN_ODR_INDEX_REF }} - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config @@ -313,7 +311,6 @@ jobs: uses: actions/checkout@v4 with: repository: opendocument-app/conan-odr-index - ref: ${{ env.CONAN_ODR_INDEX_REF }} - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7ec433a5b..c08630101 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,9 +4,6 @@ on: release: types: [published] -env: - CONAN_ODR_INDEX_REF: 4c017e76b56d6972564bd6d704a8843076b94f32 - jobs: build: runs-on: ${{ matrix.os }} @@ -33,7 +30,6 @@ jobs: uses: actions/checkout@v4 with: repository: opendocument-app/conan-odr-index - ref: ${{ env.CONAN_ODR_INDEX_REF }} - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index 077145009..deed91fe2 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -10,7 +10,6 @@ env: CCACHE_DIR: ${{ github.workspace }}/ccache CCACHE_MAXSIZE: 500M CCACHE_KEY_SUFFIX: r22 - CONAN_ODR_INDEX_REF: 4c017e76b56d6972564bd6d704a8843076b94f32 jobs: build: @@ -37,7 +36,6 @@ jobs: uses: actions/checkout@v4 with: repository: opendocument-app/conan-odr-index - ref: ${{ env.CONAN_ODR_INDEX_REF }} - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config From bcd13e2c53d8af01dc74da4a54b4d951fdc51fd8 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 22 Mar 2026 11:26:41 +0100 Subject: [PATCH 05/17] drop upload --- .github/workflows/publish.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c08630101..5ef872c0a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -52,9 +52,3 @@ jobs: --name odrcore --version ${VERSION} --build "*" - - - name: conan login - run: conan remote login odr admin --password ${{ secrets.ARTIFACTORY }} - - - name: upload to conan repo - run: conan upload "*" --remote odr --only-recipe --confirm From 50cfd7e652330eee4458ee2f2cd35c576c41747c Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Tue, 24 Mar 2026 15:40:43 +0100 Subject: [PATCH 06/17] fix --- .github/workflows/build_test.yml | 2 ++ .github/workflows/publish.yml | 1 + .github/workflows/tidy.yml | 1 + 3 files changed, 4 insertions(+) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index c62dd794d..9f68e1449 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -54,6 +54,7 @@ jobs: uses: actions/checkout@v4 with: repository: opendocument-app/conan-odr-index + path: conan-odr-index - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config @@ -311,6 +312,7 @@ jobs: uses: actions/checkout@v4 with: repository: opendocument-app/conan-odr-index + path: conan-odr-index - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5ef872c0a..d93bf5299 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -30,6 +30,7 @@ jobs: uses: actions/checkout@v4 with: repository: opendocument-app/conan-odr-index + path: conan-odr-index - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index deed91fe2..bb478b994 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -36,6 +36,7 @@ jobs: uses: actions/checkout@v4 with: repository: opendocument-app/conan-odr-index + path: conan-odr-index - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config From 5c56a9a486f4b59bb3594dbbbf67d218372743ea Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Wed, 25 Mar 2026 19:16:41 +0100 Subject: [PATCH 07/17] update lock --- conan.lock | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/conan.lock b/conan.lock index b5e5e6ded..2b982132f 100644 --- a/conan.lock +++ b/conan.lock @@ -3,17 +3,17 @@ "requires": [ "zstd/1.5.7#b68ca8e3de04ba5957761751d1d661f4%1760955092.069", "zlib/1.3.1#cac0f6daea041b0ccf42934163defb20%1765284699.337", - "xz_utils/5.8.1#0c67d0683aca2f1ca69a17730a65a1e7%1764347087.521", - "wvware/1.2.9-odr#2d8e0b63ad3ece786e8e70cb5c550f5f%1766349558.318423", + "xz_utils/5.8.2#79a8ec4932f0b3bad1293f78d5b90447%1773450120.286", + "wvware/1.2.9-odr#2d8e0b63ad3ece786e8e70cb5c550f5f%1766352522.558", "vincentlaucsb-csv-parser/2.3.0#ac67e368e82c9e3da4a663c35e3a1b2f%1718528275.177", "util-linux-libuuid/2.41.2#ee8e33ba15c17c0140643e0bd93c0b6f%1765881086.29", - "utfcpp/4.0.4#cd6efc5d62de4e9ee0b5f3abd0df37a9%1722968964.685", + "utfcpp/4.0.4#199ad4051968b14d27cb937173bcf42a%1773905534.969", "uchardet/0.0.8#6ab25e452021fcdb560f4e37f4a27bc1%1759735438.978", "pugixml/1.14#c6afdcf73d71858303d8260b0d76ff91%1696206310.014", - "poppler-data/0.4.12-odr#06cdb12e4cab52261a5eb6c7d7dad273%1766349558.167614", - "poppler/24.08.0-odr#5150a6889acc1c8c9176d857c12fa3c8%1766349558.019082", + "poppler-data/0.4.12-odr#06cdb12e4cab52261a5eb6c7d7dad273%1764497608.501", + "poppler/24.08.0-odr#5150a6889acc1c8c9176d857c12fa3c8%1766352521.627", "pixman/0.46.2#88b157b4faa6474a6028c2ba2a987924%1752742515.414", - "pdf2htmlex/0.18.8.rc1-odr-git-eb5d291#fadb1d15d841bf6c75e3bc76bde81777%1766349557.868725", + "pdf2htmlex/0.18.8.rc1-odr-git-eb5d291#fadb1d15d841bf6c75e3bc76bde81777%1766352519.27", "pcre2/10.42#9a35f5089feb875ec61a38eca364ce77%1743524593.693", "openjpeg/2.5.4#372fbc2b4348d45ab0c0a62a8475dc2f%1760446899.685", "nlohmann_json/3.11.3#45828be26eb619a2e04ca517bb7b828d%1701220705.259", @@ -21,41 +21,42 @@ "lzo/2.10#f00b10acc508cea70645727d970a23e1%1759909644.842", "libxml2/2.12.7#1c4d20b7ab8b618ce699733723ba4df6%1721306327.767", "libselinux/3.6#5a78ff6ae5034eeaac8da723361a8ce4%1717655459.344", - "libpng/1.6.53#a55f084366cd7b81cfce80327507913e%1765191393.267", + "libpng/1.6.55#f32362d4db3c562271d907c99be24091%1770802173.684", "libmagic/5.45#791d5bad38d33272bb120994a198b1ac%1727273086.09", "libjpeg/9f#8edfe2699565c80c825d0256002504ff%1723665907.087", "libiconv/1.17#1e65319e945f2d31941a9d28cc13c058%1751451666.321", - "libgsf/1.14.52#7b7b45fff714f0441d8837e7b14b8b9a%1766349557.4201689", + "libgsf/1.14.52#7b7b45fff714f0441d8837e7b14b8b9a%1766352516.733", "libgettext/0.22#b09eea019e19b9b9c46d8f1da7d75444%1765809130.834", "libffi/3.4.8#a045c00fb26779635e3bed40e80c5254%1753360042.396", "libelf/0.8.13#ba59bbc89757ed62cfd7690a73bf81be%1741781951.327", "lcms/2.17#3feb06eea368c52c82f50107cd7694cd%1753693316.094", "gtest/1.14.0#f8f0757a574a8dd747d16af62d6eb1b7%1743410807.169", - "glib/2.81.0-odr#0436d4fbe7682722ede5964a63953c1d%1766349557.268547", - "giflib/5.2.2#3923fc0f7ffec2f0bdbdee9b548f9248%1731663927.701", + "glib/2.81.0-odr#0436d4fbe7682722ede5964a63953c1d%1766352509.109", + "giflib/5.2.2#b445ec67bae61a96ddf0fa5614afde18%1773315754.794", "freetype/2.14.1#40f1e4af5db7d8155f9ecabd09973280%1762374429.281", - "fontforge/20240423-git#af7f643fc24bfd3661e97e8adf7c5a72%1766349557.1175628", - "fontconfig/2.15.0-odr#5681bcb942193569ee95215b93ed9fb0%1766349556.9683158", - "expat/2.7.3#f529802a90f0758a01f498a18f8c657b%1759399780.465", + "fontforge/20240423-git#af7f643fc24bfd3661e97e8adf7c5a72%1766352508.159", + "fontconfig/2.15.0-odr#5681bcb942193569ee95215b93ed9fb0%1766352507.462", + "expat/2.7.5#89bbde1770876a19bb8620b9808941cc%1773806275.408", "cryptopp/8.9.0#7a51e0038756b21bc3a6b82d681d5906%1758206597.119", "cpp-httplib/0.16.3#7aa89fbb81ffd19539a49fc132502966%1748426320.106", - "cairo/1.18.0-odr#e2979af10b4da6ece999e32d272ffabc%1766349556.814425", + "cairo/1.18.0-odr#e2979af10b4da6ece999e32d272ffabc%1766352506.497", "bzip2/1.0.8#c470882369c2d95c5c77e970c0c7e321%1762886692.465", "brotli/1.1.0#3f631ef77008f7b5eb388780116371a3%1764862343.045", "boost/1.90.0#d5e8defe7355494953be18524a7f135b%1765955095.179", - "argon2/20190702-odr#965901884bc82ec8a7c0a1305d42c127%1766349556.660966" + "argon2/20190702-odr#965901884bc82ec8a7c0a1305d42c127%1764497584.637" ], "build_requires": [ "zstd/1.5.7#b68ca8e3de04ba5957761751d1d661f4%1760955092.069", "zlib/1.3.1#cac0f6daea041b0ccf42934163defb20%1765284699.337", - "xz_utils/5.8.1#0c67d0683aca2f1ca69a17730a65a1e7%1764347087.521", + "xz_utils/5.8.2#79a8ec4932f0b3bad1293f78d5b90447%1773450120.286", "pkgconf/2.5.1#93c2051284cba1279494a43a4fcfeae2%1757684701.089", "pkgconf/2.2.0#4ac315b50ef734072b00ff3aacbf52bf%1755505628.021", "pkgconf/2.1.0#21f96520faf7660b99f872e956d2ac13%1755505630.82", "pcre2/10.42#9a35f5089feb875ec61a38eca364ce77%1743524593.693", "ninja/1.13.2#c8c5dc2a52ed6e4e42a66d75b4717ceb%1764096931.974", + "meson/1.10.1#426d7d29e3e5f7285cb8398d84546734%1772032339.966", "meson/1.9.1#abbc783cd297bedce14581b4aec060b8%1758626166.349", - "m4/1.4.19#b38ced39a01e31fef5435bc634461fd2%1700758725.451", + "m4/1.4.19#1f9bd25d2bd53f49ad509caa467f57b9%1770982506.688", "libtool/2.4.7#14e7739cc128bc1623d2ed318008e47e%1755679003.847", "libselinux/3.6#5a78ff6ae5034eeaac8da723361a8ce4%1717655459.344", "libmagic/5.45#791d5bad38d33272bb120994a198b1ac%1727273086.09", @@ -66,10 +67,11 @@ "gtk-doc-stub/cci.20181216#09072d684ce1458596b44a30a747494c%1687277608.37", "gperf/3.1#a7afdf8f7cccdc2dcd4d962370c33d4f%1755780571.156", "gnu-config/cci.20210814#466e9d4d7779e1c142443f7ea44b4284%1762363589.329", - "glib/2.81.0-odr#0436d4fbe7682722ede5964a63953c1d%1766349557.268547", + "glib/2.81.0-odr#0436d4fbe7682722ede5964a63953c1d%1766352509.109", "gettext/0.26#28c867efd4914f03c6c05da08a23c35b%1765299118.633", "flex/2.6.4#efa781fc5088b47c895bd4eef6911f2e%1761560242.855", - "cmake/3.31.10#313d16a1aa16bbdb2ca0792467214b76%1763665505.054", + "cmake/4.3.0#b939a42e98f593fb34d3a8c5cc860359%1773780142.26", + "cmake/3.31.11#f325c933f618a1fcebc1e1c0babfd1ba%1769622857.944", "bzip2/1.0.8#c470882369c2d95c5c77e970c0c7e321%1762886692.465", "automake/1.16.5#b91b7c384c3deaa9d535be02da14d04f%1755524470.56", "autoconf/2.71#51077f068e61700d65bb05541ea1e4b0%1731054366.86" From c6ae8c917f05e9f632fb1d5427963b25c7a0acba Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Wed, 25 Mar 2026 20:26:19 +0100 Subject: [PATCH 08/17] fix --- .github/config/conan/profiles/ubuntu-24.04-gcc-14 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/config/conan/profiles/ubuntu-24.04-gcc-14 b/.github/config/conan/profiles/ubuntu-24.04-gcc-14 index b0191edee..c7df6917c 100644 --- a/.github/config/conan/profiles/ubuntu-24.04-gcc-14 +++ b/.github/config/conan/profiles/ubuntu-24.04-gcc-14 @@ -12,5 +12,5 @@ tools.build:compiler_executables={'c': 'gcc-14', 'cpp': 'g++-14'} tools.cmake.cmaketoolchain:extra_variables={'CMAKE_CXX_COMPILER_LAUNCHER': 'ccache', 'CMAKE_C_COMPILER_LAUNCHER': 'ccache'} [buildenv] -CC=ccache g++-14 +CC=ccache gcc-14 CXX=ccache g++-14 From 5651022349219da5e78fed9e9e71e37d45fdf0b3 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Wed, 25 Mar 2026 22:21:04 +0100 Subject: [PATCH 09/17] install ccache --- .github/workflows/publish.yml | 11 +++++++++++ .github/workflows/tidy.yml | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d93bf5299..190dde771 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,6 +16,17 @@ jobs: - name: checkout uses: actions/checkout@v4 + - name: ubuntu install ccache + if: runner.os == 'Linux' + run: | + sudo apt install ccache + ccache -V + - name: macos install ccache + if: runner.os == 'macOS' + run: | + brew install ccache + ccache -V + - name: set up python 3.12 uses: actions/setup-python@v5 with: diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index bb478b994..eb21ded78 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -23,6 +23,17 @@ jobs: - name: checkout uses: actions/checkout@v4 + - name: ubuntu install ccache + if: runner.os == 'Linux' + run: | + sudo apt install ccache + ccache -V + - name: macos install ccache + if: runner.os == 'macOS' + run: | + brew install ccache + ccache -V + - run: clang-tidy --version - name: setup python 3.12 From e3c6c80cc5ec42fdac12a7f913bac2369d401382 Mon Sep 17 00:00:00 2001 From: Mathias Kub Date: Wed, 25 Mar 2026 22:37:18 +0100 Subject: [PATCH 10/17] Add concon-odr-index as Git submodule (#475) * Add concon-odr-index as Git submodule * Apply suggestions from code review Co-authored-by: Andreas Stefl * Update URL for conan-odr-index submodule * Apply suggestions from code review Co-authored-by: Andreas Stefl --------- Co-authored-by: Andreas Stefl --- .github/workflows/build_test.yml | 7 ++----- .github/workflows/publish.yml | 7 ++----- .github/workflows/tidy.yml | 7 ++----- .gitmodules | 3 +++ conan-odr-index | 1 + 5 files changed, 10 insertions(+), 15 deletions(-) create mode 160000 conan-odr-index diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index ff02017b1..27ca73783 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -27,6 +27,8 @@ jobs: steps: - name: checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - name: checkout conan-odr-index + run: git submodule update --init --depth 1 conan-odr-index - name: ubuntu install ccache if: runner.os == 'Linux' @@ -50,11 +52,6 @@ jobs: if: startsWith(matrix.host_profile, 'android') run: yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{ matrix.ndk_version }}' - - name: fetch conan-odr-index - uses: actions/checkout@v4 - with: - repository: opendocument-app/conan-odr-index - path: conan-odr-index - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index dc56b6eba..276c8b19a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,6 +15,8 @@ jobs: steps: - name: checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - name: checkout conan-odr-index + run: git submodule update --init --depth 1 conan-odr-index - name: ubuntu install ccache if: runner.os == 'Linux' @@ -37,11 +39,6 @@ jobs: - name: get version run: echo "VERSION=${GITHUB_REF_NAME:1}" >> $GITHUB_ENV - - name: fetch conan-odr-index - uses: actions/checkout@v4 - with: - repository: opendocument-app/conan-odr-index - path: conan-odr-index - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index 53d42de13..7534539f2 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -22,6 +22,8 @@ jobs: steps: - name: checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - name: checkout conan-odr-index + run: git submodule update --init --depth 1 conan-odr-index - name: ubuntu install ccache if: runner.os == 'Linux' @@ -43,11 +45,6 @@ jobs: - name: install python dependencies run: pip install --upgrade pip conan - - name: fetch conan-odr-index - uses: actions/checkout@v4 - with: - repository: opendocument-app/conan-odr-index - path: conan-odr-index - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config diff --git a/.gitmodules b/.gitmodules index 1c9ed7bf5..f60e96a52 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "test/data/reference-output/odr-private"] path = test/data/reference-output/odr-private url = git@github.com:opendocument-app/OpenDocument.test-private.output.git +[submodule "conan-odr-index"] + path = conan-odr-index + url = https://github.com/opendocument-app/conan-odr-index.git diff --git a/conan-odr-index b/conan-odr-index new file mode 160000 index 000000000..984750333 --- /dev/null +++ b/conan-odr-index @@ -0,0 +1 @@ +Subproject commit 98475033331d51251df1785336600f9fbb5b2761 From 0951e5e5f892c3a9e74f4c31154290434eeb58ec Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Thu, 26 Mar 2026 01:02:39 +0100 Subject: [PATCH 11/17] cache for conan --- .github/workflows/build_test.yml | 22 ++++++++++++++++------ .github/workflows/publish.yml | 27 +++++++++++++++++++++++++-- .github/workflows/tidy.yml | 20 ++++++++++++++------ 3 files changed, 55 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 27ca73783..c984f5dc0 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -7,9 +7,11 @@ concurrency: cancel-in-progress: true env: - CCACHE_DIR: ${{ github.workspace }}/ccache + CCACHE_DIR: ${{ github.workspace }}/.ccache CCACHE_MAXSIZE: 500M - CCACHE_KEY_SUFFIX: r22 + CCACHE_KEY_SUFFIX: r1 + CONAN_HOME: ${{ github.workspace }}/.conan2 + CONAN_KEY_SUFFIX: r1 jobs: build: @@ -52,6 +54,14 @@ jobs: if: startsWith(matrix.host_profile, 'android') run: yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{ matrix.ndk_version }}' + - name: cache + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 + with: + path: ${{ env.CONAN_HOME }} + key: ${{ matrix.host_profile }}-${{ env.CONAN_KEY_SUFFIX }} + restore-keys: | + ${{ matrix.host_profile }}- + - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config @@ -60,7 +70,7 @@ jobs: - name: cache uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 with: - path: ${{ github.workspace }}/ccache + path: ${{ env.CCACHE_DIR }} key: ${{ matrix.host_profile }}-${{ env.CCACHE_KEY_SUFFIX }} restore-keys: | ${{ matrix.host_profile }}- @@ -71,7 +81,7 @@ jobs: --lockfile conan.lock --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' - --build "*" + --build missing - name: cmake if: runner.os != 'Windows' @@ -333,7 +343,7 @@ jobs: --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' --output-folder build - --build "*" + --build missing - name: conan downstream run: > @@ -341,7 +351,7 @@ jobs: --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' --output-folder test/downstream/build - --build "*" + --build missing - name: cmake run: > diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 276c8b19a..dd83f7e7f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,6 +4,13 @@ on: release: types: [published] +env: + CCACHE_DIR: ${{ github.workspace }}/.ccache + CCACHE_MAXSIZE: 500M + CCACHE_KEY_SUFFIX: r1 + CONAN_HOME: ${{ github.workspace }}/.conan2 + CONAN_KEY_SUFFIX: r1 + jobs: build: runs-on: ${{ matrix.os }} @@ -39,18 +46,34 @@ jobs: - name: get version run: echo "VERSION=${GITHUB_REF_NAME:1}" >> $GITHUB_ENV + - name: cache + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 + with: + path: ${{ env.CONAN_HOME }} + key: ${{ matrix.host_profile }}-${{ env.CONAN_KEY_SUFFIX }} + restore-keys: | + ${{ matrix.host_profile }}- + - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config run: conan config install .github/config/conan + - name: cache + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 + with: + path: ${{ env.CCACHE_DIR }} + key: ${{ matrix.host_profile }}-${{ env.CCACHE_KEY_SUFFIX }} + restore-keys: | + ${{ matrix.host_profile }}- + - name: conan install run: > conan install . --lockfile conan.lock --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' - --build "*" + --build missing - name: create conan package run: > @@ -60,4 +83,4 @@ jobs: --profile:build '${{ matrix.build_profile }}' --name odrcore --version ${VERSION} - --build "*" + --build missing diff --git a/.github/workflows/tidy.yml b/.github/workflows/tidy.yml index 7534539f2..b5133cfca 100644 --- a/.github/workflows/tidy.yml +++ b/.github/workflows/tidy.yml @@ -9,7 +9,9 @@ concurrency: env: CCACHE_DIR: ${{ github.workspace }}/ccache CCACHE_MAXSIZE: 500M - CCACHE_KEY_SUFFIX: r22 + CCACHE_KEY_SUFFIX: r1 + CONAN_HOME: ${{ github.workspace }}/.conan2 + CONAN_KEY_SUFFIX: r1 jobs: build: @@ -45,17 +47,23 @@ jobs: - name: install python dependencies run: pip install --upgrade pip conan + - name: cache + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 + with: + path: ${{ env.CONAN_HOME }} + key: ${{ matrix.host_profile }}-${{ env.CONAN_KEY_SUFFIX }} + restore-keys: | + ${{ matrix.host_profile }}- + - name: export conan-odr-index run: python conan-odr-index/scripts/conan_export_all_packages.py - name: conan config run: conan config install .github/config/conan - name: cache - uses: actions/cache@v4 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 with: - path: | - ~/.ccache - /Users/runner/Library/Caches/ccache + path: ${{ env.CCACHE_DIR }} key: ${{ matrix.host_profile }}-${{ env.CCACHE_KEY_SUFFIX }} restore-keys: | ${{ matrix.host_profile }}- @@ -66,7 +74,7 @@ jobs: --lockfile conan.lock --profile:host '${{ matrix.host_profile }}' --profile:build '${{ matrix.build_profile }}' - --build "*" + --build missing - name: cmake run: > From b075af6812c916442a1cb990915964da6d18fba1 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Thu, 26 Mar 2026 07:58:23 +0100 Subject: [PATCH 12/17] fix conan2 path --- .github/workflows/build_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index c984f5dc0..cb82f302a 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -128,7 +128,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: conan2-${{ matrix.host_profile }} - path: ~/.conan2/p + path: ${{ env.CONAN_HOME }} if-no-files-found: error compression-level: 0 From 446e0de9014d03c527d66f896af2e83bf9548711 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Thu, 26 Mar 2026 08:07:14 +0100 Subject: [PATCH 13/17] drop conan artifact --- .github/workflows/build_test.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index cb82f302a..298b26186 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -124,14 +124,6 @@ jobs: build/test/Release/odr_test.exe build/_deps/odr.js-src - - name: Artifact .conan2/p dir - uses: actions/upload-artifact@v4 - with: - name: conan2-${{ matrix.host_profile }} - path: ${{ env.CONAN_HOME }} - if-no-files-found: error - compression-level: 0 - docker: needs: build runs-on: ${{ matrix.os }} @@ -231,12 +223,6 @@ jobs: name: bin-${{ matrix.host_profile }} path: . - - name: Download .conan2/p dir - uses: actions/download-artifact@v4 - with: - name: conan2-${{ matrix.host_profile }} - path: ~/.conan2/p - - name: fix artifact permissions if: runner.os != 'Windows' run: chmod +x build/test/odr_test From 20b7d3949c141afea22867ba994e4fbf56cc8779 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Thu, 26 Mar 2026 08:11:12 +0100 Subject: [PATCH 14/17] limit downstream builds --- .github/workflows/build_test.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index cb82f302a..da088a9cf 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -282,11 +282,6 @@ jobs: matrix: include: - { os: ubuntu-24.04, build_profile: ubuntu-24.04-clang-18, host_profile: ubuntu-24.04-clang-18 } - - { os: ubuntu-24.04, build_profile: ubuntu-24.04-gcc-14, host_profile: ubuntu-24.04-gcc-14 } - - { os: macos-15, build_profile: macos-15-armv8-clang-14, host_profile: macos-15-armv8-clang-14 } - - { os: macos-26, build_profile: macos-26-armv8-clang-14, host_profile: macos-26-armv8-clang-14 } - - { os: windows-2022, build_profile: windows-2022-msvc-1940, host_profile: windows-2022-msvc-1940 } - - { os: ubuntu-24.04, build_profile: ubuntu-24.04-clang-18, host_profile: android-35-x86_64, ndk_version: 28.1.13356709 } steps: - name: checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 From 822ad0fdd9f43f9981005400cef3723910e47238 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Thu, 26 Mar 2026 09:58:09 +0100 Subject: [PATCH 15/17] fix merge --- .github/workflows/build_test.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index da088a9cf..09634d182 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -43,10 +43,10 @@ jobs: brew install ccache ccache -V - - name: setup python 3.12 + - name: setup python 3.14 uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: - python-version: 3.12 + python-version: 3.14 - name: install python dependencies run: pip install conan @@ -115,7 +115,7 @@ jobs: run: cmake --build build --target install --config Release - name: upload binaries to github - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 with: name: bin-${{ matrix.host_profile }} path: | @@ -125,7 +125,7 @@ jobs: build/_deps/odr.js-src - name: Artifact .conan2/p dir - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 with: name: conan2-${{ matrix.host_profile }} path: ${{ env.CONAN_HOME }} @@ -145,9 +145,9 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4 - - uses: docker/login-action@v3 + - uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4 with: registry: ghcr.io username: ${{ github.actor }} @@ -155,7 +155,7 @@ jobs: - name: Docker meta id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6 with: # list of Docker images to use as base name for tags images: | @@ -172,13 +172,13 @@ jobs: type=sha - name: download binaries - uses: actions/download-artifact@v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: bin-${{ matrix.host_profile }} path: cli - name: Build and push - uses: docker/build-push-action@v5 + uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7 with: context: cli push: true @@ -218,21 +218,21 @@ jobs: if: runner.os == 'macOS' run: brew install tidy-html5 - - name: set up python 3.12 + - name: set up python 3.14 uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: - python-version: 3.12 + python-version: 3.14 - name: install python dependencies run: pip install htmlcmp==1.2.1 - name: download binaries - uses: actions/download-artifact@v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: bin-${{ matrix.host_profile }} path: . - name: Download .conan2/p dir - uses: actions/download-artifact@v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: conan2-${{ matrix.host_profile }} path: ~/.conan2/p @@ -297,10 +297,10 @@ jobs: brew install ccache ccache -V - - name: set up python 3.12 + - name: set up python 3.14 uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: - python-version: 3.12 + python-version: 3.14 - name: install python dependencies run: pip install conan From 3820b459c67a5dd327e35b59e303c9b05ea89dd2 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Thu, 26 Mar 2026 09:58:16 +0100 Subject: [PATCH 16/17] drop conan2 artifact upload --- .github/workflows/build_test.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 09634d182..78ced8771 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -124,14 +124,6 @@ jobs: build/test/Release/odr_test.exe build/_deps/odr.js-src - - name: Artifact .conan2/p dir - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 - with: - name: conan2-${{ matrix.host_profile }} - path: ${{ env.CONAN_HOME }} - if-no-files-found: error - compression-level: 0 - docker: needs: build runs-on: ${{ matrix.os }} From a2dbc5b49c012d84e6c2f4958ab454dce766dd27 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Thu, 26 Mar 2026 10:06:07 +0100 Subject: [PATCH 17/17] try again --- .github/workflows/build_test.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 78ced8771..b9382a755 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -124,6 +124,13 @@ jobs: build/test/Release/odr_test.exe build/_deps/odr.js-src + # TODO this is only needed because of data files from dependencies; there should be a better solution + - name: upload conan2 directory to github + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 + with: + name: conan2-${{ matrix.host_profile }} + path: ${{ env.CONAN_HOME }} + docker: needs: build runs-on: ${{ matrix.os }} @@ -223,11 +230,11 @@ jobs: name: bin-${{ matrix.host_profile }} path: . - - name: Download .conan2/p dir + - name: download conan2 directory uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: conan2-${{ matrix.host_profile }} - path: ~/.conan2/p + path: ${{ env.CONAN_HOME }} - name: fix artifact permissions if: runner.os != 'Windows'