remove conan upload #2272
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build_test | |
| on: push | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| CCACHE_DIR: ${{ github.workspace }}/.ccache | |
| CCACHE_MAXSIZE: 1G | |
| CCACHE_KEY_SUFFIX: r1 | |
| CONAN_HOME: ${{ github.workspace }}/.conan2 | |
| CONAN_KEY_SUFFIX: r1 | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| 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 | |
| - name: checkout conan-odr-index | |
| run: git submodule update --init --depth 1 conan-odr-index | |
| - 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: setup python 3.14 | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| with: | |
| python-version: 3.14 | |
| - name: install python dependencies | |
| run: pip install conan | |
| - name: install NDK | |
| if: startsWith(matrix.host_profile, 'android') | |
| run: yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{ matrix.ndk_version }}' | |
| - name: cache conan | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 | |
| with: | |
| path: ${{ env.CONAN_HOME }} | |
| key: conan-${{ matrix.host_profile }}-${{ env.CONAN_KEY_SUFFIX }} | |
| restore-keys: | | |
| conan-${{ 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 ccache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 | |
| with: | |
| path: ${{ env.CCACHE_DIR }} | |
| key: ccache-${{ matrix.host_profile }}-${{ env.CCACHE_KEY_SUFFIX }} | |
| restore-keys: | | |
| ccache-${{ matrix.host_profile }}- | |
| - name: conan install | |
| run: > | |
| conan install . | |
| --lockfile conan.lock | |
| --profile:host '${{ matrix.host_profile }}' | |
| --profile:build '${{ matrix.build_profile }}' | |
| --build missing | |
| - name: cmake | |
| if: runner.os != 'Windows' | |
| run: > | |
| cmake -B build -S . | |
| -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" | |
| -DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
| -DCMAKE_BUILD_TYPE=Release | |
| -DCMAKE_CXX_FLAGS="-Werror" | |
| -DCMAKE_INSTALL_PREFIX=install | |
| -DODR_TEST=ON | |
| -DWITH_PDF2HTMLEX=ON | |
| -DWITH_WVWARE=ON | |
| - name: cmake | |
| if: runner.os == 'Windows' | |
| run: > | |
| cmake -B build -S . | |
| -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" | |
| -DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
| -DCMAKE_BUILD_TYPE=Release | |
| -DCMAKE_INSTALL_PREFIX=install | |
| -DODR_TEST=ON | |
| -DWITH_PDF2HTMLEX=OFF | |
| -DWITH_WVWARE=OFF | |
| - name: build | |
| run: cmake --build build --config Release | |
| - name: install | |
| run: cmake --build build --target install --config Release | |
| - name: upload binaries to github | |
| uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7 | |
| with: | |
| name: bin-${{ matrix.host_profile }} | |
| path: | | |
| install | |
| build/test/odr_test | |
| build/test/Release/odr_test.exe | |
| build/data | |
| if-no-files-found: error | |
| include-hidden-files: true | |
| docker: | |
| needs: build | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - { os: ubuntu-24.04, host_profile: ubuntu-24.04-clang-18 } | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4 | |
| - uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Docker meta | |
| id: meta | |
| uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6 | |
| with: | |
| # list of Docker images to use as base name for tags | |
| images: | | |
| ghcr.io/${{ github.repository_owner }}/odr_core_cli | |
| # generate Docker tags based on the following events/attributes | |
| tags: | | |
| type=schedule | |
| type=ref,event=branch | |
| type=ref,event=pr | |
| type=semver,pattern={{version}} | |
| type=semver,pattern={{major}}.{{minor}} | |
| type=semver,pattern={{major}} | |
| type=raw,value=latest,enable={{is_default_branch}} | |
| type=sha | |
| - name: download binaries | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 | |
| with: | |
| name: bin-${{ matrix.host_profile }} | |
| path: cli | |
| - name: Build and push | |
| uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7 | |
| with: | |
| context: cli | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/odr_core_cli:buildcache | |
| cache-to: type=registry,ref=ghcr.io/${{ github.repository_owner }}/odr_core_cli:buildcache,mode=max | |
| # TODO try to run it | |
| test: | |
| needs: build | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # fails at the moment because of pdf2htmlex | |
| #- { os: ubuntu-24.04, host_profile: ubuntu-24.04-clang-18 } | |
| #- { os: ubuntu-24.04, host_profile: ubuntu-24.04-gcc-14 } | |
| - { os: macos-26, host_profile: macos-26-armv8-clang-14 } | |
| # Windows test disabled because: | |
| # Running main() from C:\Users\runneradmin\.conan2\p\b\gtestdd9407d368b89\b\src\googletest\src\gtest_main.cc | |
| # [ FATAL ] C:/Users/runneradmin/.conan2/p/gtest28fa6787e7f6e/p/include\gtest/internal/gtest-param-util.h(585):: Condition IsValidParamName(param_name) failed. Parameterized test name 'odr_private\docx\03_smpldap_docx' is invalid, in D:\a\OpenDocument.core\OpenDocument.core\test\src\html_output_test.cpp line 129 | |
| #- { os: windows-2022, host_profile: windows-2022-msvc-1940 } | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| token: ${{ secrets.PAT_ANDIWAND }} | |
| submodules: true | |
| - name: ubuntu install tidy | |
| if: runner.os == 'Linux' | |
| run: sudo apt install tidy | |
| - name: macos install tidy | |
| if: runner.os == 'macOS' | |
| run: brew install tidy-html5 | |
| - name: set up python 3.14 | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| with: | |
| python-version: 3.14 | |
| - name: install python dependencies | |
| run: pip install htmlcmp==1.2.1 | |
| - name: download binaries | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 | |
| with: | |
| name: bin-${{ matrix.host_profile }} | |
| path: . | |
| - name: fix artifact permissions | |
| if: runner.os != 'Windows' | |
| run: chmod +x build/test/odr_test | |
| - name: test | |
| if: runner.os != 'Windows' | |
| working-directory: build/test | |
| run: ./odr_test | |
| - name: windows fix artifact permissions | |
| if: runner.os == 'Windows' | |
| run: chmod +x build/test/Release/odr_test.exe | |
| - name: windows test | |
| if: runner.os == 'Windows' | |
| working-directory: build/test | |
| run: ./Release/odr_test.exe | |
| - name: tidy public test outputs | |
| run: html-tidy --html-tidy-config test/scripts/html-tidy-config build/test/output/odr-public/output | |
| - name: compare public test outputs | |
| shell: bash | |
| run: | | |
| compare-html \ | |
| --driver firefox \ | |
| --max-workers 1 \ | |
| test/data/reference-output/odr-public/output \ | |
| build/test/output/odr-public/output | |
| - name: tidy private test outputs | |
| run: html-tidy --html-tidy-config test/scripts/html-tidy-config build/test/output/odr-private/output | |
| - name: compare private test outputs | |
| shell: bash | |
| run: | | |
| compare-html \ | |
| --driver firefox \ | |
| --max-workers 1 \ | |
| test/data/reference-output/odr-private/output \ | |
| build/test/output/odr-private/output | |
| build-test-downstream: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - { os: ubuntu-24.04, build_profile: ubuntu-24.04-clang-18, host_profile: ubuntu-24.04-clang-18 } | |
| 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' | |
| 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.14 | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| with: | |
| python-version: 3.14 | |
| - name: install python dependencies | |
| run: pip install conan | |
| - name: install NDK | |
| if: startsWith(matrix.host_profile, 'android') | |
| run: yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --install 'ndk;${{ matrix.ndk_version }}' | |
| - name: cache conan | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 | |
| with: | |
| path: ${{ env.CONAN_HOME }} | |
| key: conan-${{ matrix.host_profile }}-${{ env.CONAN_KEY_SUFFIX }} | |
| restore-keys: | | |
| conan-${{ 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: conan odrcore | |
| run: conan export . --name odrcore --version 0.0.0 | |
| - name: cache ccache | |
| uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 | |
| with: | |
| path: ${{ env.CCACHE_DIR }} | |
| key: ccache-${{ matrix.host_profile }}-${{ env.CCACHE_KEY_SUFFIX }} | |
| restore-keys: | | |
| ccache-${{ 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 | |
| - 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 | |
| - name: cmake | |
| run: > | |
| cmake -S test/downstream -B test/downstream/build | |
| -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" | |
| -DCMAKE_BUILD_TYPE=Release | |
| - name: build | |
| run: cmake --build test/downstream/build --config Release | |
| - name: run | |
| if: matrix.build_profile == matrix.host_profile && (runner.os == 'Linux' || runner.os == 'macOS') | |
| run: test/downstream/build/odr-test-downstream | |
| - name: run | |
| if: matrix.build_profile == matrix.host_profile && runner.os == 'Windows' | |
| run: test/downstream/build/Release/odr-test-downstream.exe |