diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml index ecb46bc308..50d6d546fa 100644 --- a/.github/workflows/cifuzz.yml +++ b/.github/workflows/cifuzz.yml @@ -26,7 +26,7 @@ jobs: fuzz-seconds: 600 dry-run: false - name: Upload Crash - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: failure() && steps.build.outcome == 'success' with: name: artifacts diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4a6bcb7137..1f8fc40e3b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -11,12 +11,12 @@ concurrency: on: push: - branches: [0.27-maintenance, main] + branches: [0.28.x, main] paths-ignore: - "*.md" pull_request: # The branches below must be a subset of the branches above - branches: [0.27-maintenance, main] + branches: [0.28.x, main] paths-ignore: - "*.md" workflow_dispatch: @@ -29,23 +29,22 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'cpp' ] + language: [ 'cpp', 'javascript' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more... # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install dependencies run: | - sudo apt-get update - sudo apt-get install -y libexpat1-dev zlib1g-dev libbrotli-dev libinih-dev + sudo eatmydata apt-get -y install libexpat1-dev zlib1g-dev libbrotli-dev libinih-dev # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} config-file: .github/codeql/codeql-config.yml @@ -57,7 +56,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -71,4 +70,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/codesee-arch-diagram.yml b/.github/workflows/codesee-arch-diagram.yml deleted file mode 100644 index 38683ce4a4..0000000000 --- a/.github/workflows/codesee-arch-diagram.yml +++ /dev/null @@ -1,22 +0,0 @@ -# This workflow was added by CodeSee. Learn more at https://codesee.io/ -# This is v2.0 of this workflow file -on: - push: - branches: - - main - pull_request_target: - types: [opened, synchronize, reopened] - -name: CodeSee - -permissions: read-all - -jobs: - codesee: - runs-on: ubuntu-22.04 - continue-on-error: true - name: Analyze the repo with CodeSee - steps: - - uses: Codesee-io/codesee-action@v2 - with: - codesee-token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }} diff --git a/.github/workflows/nightly_Linux_distributions.yml b/.github/workflows/nightly_Linux_distributions.yml deleted file mode 100644 index 1875cd83a8..0000000000 --- a/.github/workflows/nightly_Linux_distributions.yml +++ /dev/null @@ -1,42 +0,0 @@ -on: - pull_request: - paths-ignore: - - "*.md" - workflow_dispatch: - schedule: - - cron: 0 4 * * * - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -name: Nightly - Linux distributions - -jobs: - distros: - runs-on: ubuntu-22.04 - - strategy: - fail-fast: false - matrix: - # arch suffering this issue: https://github.com/abseil/abseil-cpp/issues/709 - container_image: ["fedora:latest", "debian:11", "archlinux:base", "ubuntu:22.04", "tgagor/centos:stream9", "alpine:3.17"] - compiler: [g++, clang++] - build_type: [Release, Debug] - shared_libraries: [ON, OFF] - container: - image: ${{ matrix.container_image }} - env: - CXX: ${{matrix.compiler}} - CMAKE_FLAGS: -DEXIV2_TEAM_EXTRA_WARNINGS=OFF -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=OFF -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=OFF -DEXIV2_ENABLE_PNG=ON -DCMAKE_INSTALL_PREFIX=install - - steps: - - uses: actions/checkout@v3 - - name: install dependencies - run: ./ci/install_dependencies.sh - - name: build and compile - run: | - mkdir build && cd build - cmake $CMAKE_FLAGS -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_SHARED_LIBS=${{ matrix.shared_libraries }} .. - cmake --build . --parallel - cmake --install . diff --git a/.github/workflows/on_PR_linux_fuzz.yml b/.github/workflows/on_PR_linux_fuzz.yml index c2e14a32c3..9195ae1c0f 100644 --- a/.github/workflows/on_PR_linux_fuzz.yml +++ b/.github/workflows/on_PR_linux_fuzz.yml @@ -20,14 +20,14 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 - - name: install dependencies + - uses: actions/checkout@v4 + - name: Install dependencies run: | sudo ./ci/install_dependencies.sh - sudo apt-get install ninja-build - - name: build and compile + - name: Build env: + CC: clang CXX: clang++ run: | cmake --preset linux-sanitizers -S . -B build -DCMAKE_BUILD_TYPE=Release -DEXIV2_BUILD_FUZZ_TESTS=ON -DEXIV2_BUILD_UNIT_TESTS=OFF diff --git a/.github/workflows/on_PR_linux_matrix.yml b/.github/workflows/on_PR_linux_matrix.yml index f47e5457c3..1cffe14d59 100644 --- a/.github/workflows/on_PR_linux_matrix.yml +++ b/.github/workflows/on_PR_linux_matrix.yml @@ -21,12 +21,12 @@ jobs: shared_libraries: [ON, OFF] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: install dependencies + - name: Install dependencies run: | - sudo apt install -y tree - python3 -m pip install conan==1.59.0 ninja + sudo apt install -y tree ninja-build + python3 -m pip install conan==1.* - name: Conan common config run: | diff --git a/.github/workflows/on_PR_linux_special_builds.yml b/.github/workflows/on_PR_linux_special_builds.yml index fa146c52b2..be2db5bdd1 100644 --- a/.github/workflows/on_PR_linux_special_builds.yml +++ b/.github/workflows/on_PR_linux_special_builds.yml @@ -16,15 +16,15 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 2 # Trying to deal with warning: -> Issue detecting commit SHA. Please run actions/checkout with fetch-depth > 1 or set to 0 - - name: install dependencies + - name: Install dependencies run: | - sudo apt-get install -y libxml2-dev libxslt-dev python3-dev - python3 -m pip install conan==1.59.0 gcovr ninja + sudo eatmydata apt-get -y install libxml2-dev libxslt-dev python3-dev ninja-build gcovr + python3 -m pip install conan==1.* - name: Conan common config run: | @@ -64,12 +64,12 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: install dependencies + - name: Install dependencies run: | - sudo apt install -y valgrind - python3 -m pip install conan==1.59.0 ninja + sudo apt install -y valgrind ninja-build + python3 -m pip install conan==1.* - name: Conan common config run: | @@ -99,11 +99,12 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: install dependencies + - name: Install dependencies run: | - python3 -m pip install conan==1.59.0 ninja + sudo apt install -y ninja-build + python3 -m pip install conan==1.* - name: Conan common config run: | @@ -132,12 +133,12 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: install dependencies + - name: Install dependencies run: | - sudo apt install -y valgrind doxygen graphviz gettext - python3 -m pip install conan==1.59.0 ninja + sudo apt install -y valgrind doxygen graphviz gettext ninja-build + python3 -m pip install conan==1.* - name: Conan common config run: | diff --git a/.github/workflows/on_PR_linux_staticAnalysis.yml b/.github/workflows/on_PR_linux_staticAnalysis.yml index d4704ad254..fa77859c9a 100644 --- a/.github/workflows/on_PR_linux_staticAnalysis.yml +++ b/.github/workflows/on_PR_linux_staticAnalysis.yml @@ -16,14 +16,14 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 2 # Trying to deal with warning: -> Issue detecting commit SHA. Please run actions/checkout with fetch-depth > 1 or set to 0 - - name: install dependencies + - name: Install dependencies run: | - python3 -m pip install conan==1.59.0 + python3 -m pip install conan==1.* sudo add-apt-repository ppa:ubuntu-lxc/daily -y wget -q -O - https://files.pvs-studio.com/etc/pubkey.txt |sudo apt-key add - sudo wget -O /etc/apt/sources.list.d/viva64.list https://files.pvs-studio.com/etc/viva64.list @@ -56,7 +56,7 @@ jobs: pvs-studio-analyzer analyze -l PVS_license.lic -o pvsStudio.log -j4 --disableLicenseExpirationCheck plog-converter -a GA:1,2 -d V1042 -t fullhtml pvsStudio.log -o pvsReportHtml - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: static_analysis path: build/pvsReportHtml diff --git a/.github/workflows/on_PR_mac_matrix.yml b/.github/workflows/on_PR_mac_matrix.yml index 664693d1ba..ef5d2286d7 100644 --- a/.github/workflows/on_PR_mac_matrix.yml +++ b/.github/workflows/on_PR_mac_matrix.yml @@ -11,7 +11,7 @@ on: jobs: MacOS: - name: 'MacOS - clang, BuildType:${{matrix.build_type}}, SHARED:${{matrix.shared_libraries}}' + name: 'macOS - XCode - ${{matrix.build_type}} - SHARED:${{matrix.shared_libraries}}' runs-on: macos-latest strategy: @@ -21,13 +21,11 @@ jobs: shared_libraries: [ON, OFF] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: install dependencies + - name: Install dependencies run: | - brew install ninja - brew install inih - brew install googletest + brew install ninja inih googletest - name: Build run: | @@ -41,5 +39,4 @@ jobs: - name: Test run: | - cd build - ctest --output-on-failure + ctest --test-dir build --output-on-failure diff --git a/.github/workflows/on_PR_mac_special_builds.yml b/.github/workflows/on_PR_mac_special_builds.yml index f15a97bfb1..f03bf0b02c 100644 --- a/.github/workflows/on_PR_mac_special_builds.yml +++ b/.github/workflows/on_PR_mac_special_builds.yml @@ -12,24 +12,21 @@ on: jobs: MacOS_releaseSanitizers: - name: 'MacOS - Clang - Release+Sanitizers' + name: 'macOS - XCode - Release+Sanitizers' runs-on: macos-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: install dependencies + - name: Install dependencies run: | - brew install ninja - brew install inih - brew install googletest + brew install ninja inih googletest - name: Build run: | cmake --preset base_mac -S . -B build -DEXIV2_TEAM_USE_SANITIZERS=ON cmake --build build --parallel - - name: Tests + - name: Test run: | - cd build - ctest --output-on-failure + ctest --test-dir build --output-on-failure diff --git a/.github/workflows/on_PR_meson.yaml b/.github/workflows/on_PR_meson.yaml index 8ce8654ddc..e5f26adda2 100644 --- a/.github/workflows/on_PR_meson.yaml +++ b/.github/workflows/on_PR_meson.yaml @@ -57,7 +57,7 @@ jobs: deps: ['forcefallback', 'default'] platform: ['x64', 'x86'] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install packages run: | @@ -79,7 +79,7 @@ jobs: matrix: deps: ['forcefallback', 'default'] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install packages run: | @@ -101,12 +101,12 @@ jobs: strategy: matrix: deps: ['enabled', 'disabled'] - platform: ['UCRT64', 'CLANG32', 'CLANG64'] + platform: ['UCRT64', 'CLANG64'] defaults: run: shell: msys2 {0} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: msys2/setup-msys2@v2 with: @@ -133,7 +133,7 @@ jobs: matrix: deps: ['enabled', 'disabled'] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install packages run: | @@ -146,12 +146,12 @@ jobs: meson compile -C "${{github.workspace}}/build" meson test -C "${{github.workspace}}/build" FreeBSD: - runs-on: macos-latest + runs-on: ubuntu-latest name: FreeBSD steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: FreeBSD - uses: vmactions/freebsd-vm@v0 + uses: vmactions/freebsd-vm@v1 with: prepare: | pkg install -y cmake curl ninja meson gettext pkgconf googletest expat inih brotli @@ -168,7 +168,7 @@ jobs: run: | python3 -m pip install meson ninja - name: Emscripten - uses: mymindstorm/setup-emsdk@v12 + uses: mymindstorm/setup-emsdk@v14 - name: Compile run: | meson setup "${{github.workspace}}/build" --cross-file="${{github.workspace}}/em.txt" --wrap-mode=forcefallback -Ddefault_library=static -Dwarning_level=3 -Dcpp_std=c++20 -DunitTests=disabled -Dcurl=disabled diff --git a/.github/workflows/on_PR_windows_matrix.yml b/.github/workflows/on_PR_windows_matrix.yml index 5426cca2f6..ebdee20809 100644 --- a/.github/workflows/on_PR_windows_matrix.yml +++ b/.github/workflows/on_PR_windows_matrix.yml @@ -10,8 +10,7 @@ on: - "*.md" workflow_dispatch: push: - branches: - - main + branches: [0.28.x, main] tags: - '!*' paths-ignore: @@ -30,7 +29,7 @@ jobs: platform: [ x64, x86 ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Visual Studio shell uses: ilammy/msvc-dev-cmd@v1 @@ -38,14 +37,14 @@ jobs: arch: ${{matrix.platform}} - name: Restore Conan cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{github.workspace}}/conanCache key: ${{runner.os}}-${{matrix.platform}}-${{matrix.build_type}}-Shared${{matrix.shared_libraries}}-${{ hashFiles('conanfile.py') }} - name: Install Conan & Common config run: | - python -m pip install conan==1.59.0 + python -m pip install conan==1.* conan config install https://github.com/conan-io/conanclientcert.git conan profile new --detect default conan profile update settings.build_type=${{matrix.build_type}} default @@ -94,7 +93,7 @@ jobs: shell: msys2 {0} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up MSYS2 uses: msys2/setup-msys2@v2 @@ -150,7 +149,7 @@ jobs: # Make sure we don't check out scripts using Windows CRLF line endings - run: git config --global core.autocrlf input shell: pwsh - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Cygwin uses: cygwin/cygwin-install-action@v4 diff --git a/.github/workflows/on_push_BasicWinLinMac.yml b/.github/workflows/on_push_BasicWinLinMac.yml index 0db9dea315..533cb614de 100644 --- a/.github/workflows/on_push_BasicWinLinMac.yml +++ b/.github/workflows/on_push_BasicWinLinMac.yml @@ -16,26 +16,26 @@ name: On PUSH - Basic CI for main platforms jobs: windows: - name: 'Win10 Arch:x64 BuildType:Release - SHARED' + name: 'Windows 10 - MSVC - Arch:X64 BuildType:Release - SHARED' runs-on: windows-2022 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Visual Studio shell uses: ilammy/msvc-dev-cmd@v1 with: arch: x64 - - name: Restore conan cache - uses: actions/cache@v3 + - name: Restore Conan cache + uses: actions/cache@v4 with: - path: ${{github.workspace}}/conanCache - key: ${{runner.os}}-push-win-${{ hashFiles('conanfile.py') }} + path: ${{github.workspace}}/conanCache + key: ${{runner.os}}-push-win-${{ hashFiles('conanfile.py') }} - name: Install Conan & Common config run: | - python -m pip install conan==1.59.0 + python -m pip install conan==1.* conan profile new --detect default conan profile show default conan profile update settings.compiler="Visual Studio" default @@ -47,22 +47,21 @@ jobs: cmake --preset win-release -S . -B build cmake --build build --parallel - - name: Test run: | - cd build - ctest --output-on-failure + ctest --test-dir build --output-on-failure Linux: - name: 'Ubuntu 22.04 - GCC - Arch:x64 BuildType:Release - SHARED' + name: 'Ubuntu 22.04 - GCC - Arch:X64 BuildType:Release - SHARED' runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: install dependencies + - name: Install dependencies run: | - python3 -m pip install conan==1.59.0 ninja + sudo eatmydata apt-get -y install ninja-build + python3 -m pip install conan==1.* - name: Conan run: | @@ -72,35 +71,36 @@ jobs: conan profile show default conan install .. -o webready=True --build missing - - name: build and compile + - name: Build run: | cmake --preset linux-release -S . -B build cmake --build build --parallel - name: Test run: | - cd build - ctest --output-on-failure + ctest --test-dir build --output-on-failure MacOS: - name: 'MacOS - clang - Arch:x64 BuildType:Release - SHARED' - runs-on: macos-latest + name: 'macOS - XCode - Arch:${{ matrix.runner.arch }} BuildType:Release - SHARED' + runs-on: ${{ matrix.runner.os }} + strategy: + matrix: + runner: + - { os: macos-12, arch: X64 } + - { os: macos-14, arch: ARM64 } steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - name: install dependencies + - name: Install dependencies run: | - brew install ninja - brew install inih - brew install googletest + brew install ninja inih googletest - - name: build and compile + - name: Build run: | cmake --preset base_mac -S . -B build cmake --build build --parallel - name: Test run: | - cd build - ctest --output-on-failure + ctest --test-dir build --output-on-failure diff --git a/.github/workflows/on_push_ExtraJobsForMain.yml b/.github/workflows/on_push_ExtraJobsForMain.yml deleted file mode 100644 index 454a202167..0000000000 --- a/.github/workflows/on_push_ExtraJobsForMain.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: On PUSH - Linux Special Builds for main branch - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -on: - push: - branches: - - main - tags: - - '!*' - paths-ignore: - - "*.md" - workflow_dispatch: - -jobs: - special_debugRelease: - name: 'Ubuntu 22.04 - GCC - Debug+Coverage' - runs-on: ubuntu-22.04 - - steps: - - uses: actions/checkout@v3 - - - name: install dependencies - run: | - python3 -m pip install conan==1.59.0 gcovr ninja - - - name: Conan common config - run: | - conan profile new --detect default - conan profile update settings.compiler.libcxx=libstdc++11 default - - - name: Run Conan - run: | - mkdir build && cd build - conan profile list - conan profile show default - conan install .. -o webready=True --build missing - - - name: Build - run: | - cmake --preset linux-coverage -S . -B build - cmake --build build - - - name: Tests + Upload coverage - run: | - cd build - ctest --output-on-failure - # this needs to match th ecommand in on_PR_linux_secial_builds.yml! - gcovr --root .. --object-dir . --exclude-unreachable-branches --exclude-throw-branches --xml -o coverage.xml . - curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg --import - curl -Os https://uploader.codecov.io/latest/linux/codecov - curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM - curl -Os https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig - gpg --verify codecov.SHA256SUM.sig codecov.SHA256SUM - shasum -a 256 -c codecov.SHA256SUM - chmod +x codecov - ./codecov -f build/coverage.xml diff --git a/.github/workflows/on_push_clang_format.yml b/.github/workflows/on_push_clang_format.yml index 17b2f8e9ee..8cb952826f 100644 --- a/.github/workflows/on_push_clang_format.yml +++ b/.github/workflows/on_push_clang_format.yml @@ -7,11 +7,10 @@ jobs: clang-format-checking: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 - - uses: DoozyX/clang-format-lint-action@v0.16 + - uses: actions/checkout@v4 + - uses: DoozyX/clang-format-lint-action@v0.17 with: source: '.' exclude: './xmpsdk ./contrib' extensions: 'c,h,cpp,hpp' - clangFormatVersion: 12 style: file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ac25a4ccd7..a1c56ba94e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,12 +20,12 @@ jobs: name: 'Build Linux Release' runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install dependencies run: | - sudo apt install -y gettext doxygen graphviz - python -m pip install conan==1.59.0 ninja + sudo apt install -y gettext doxygen graphviz ninja-build + python -m pip install conan==1.* - name: Conan common config run: | @@ -42,11 +42,11 @@ jobs: - name: Build packaged release run: | - cmake --preset linux-all -S . -B build -DEXIV2_TEAM_PACKAGING=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DEXIV2_ENABLE_WEBREADY=OFF -DEXIV2_ENABLE_CURL=OFF + cmake --preset linux-all -S . -B build -DEXIV2_TEAM_PACKAGING=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DEXIV2_ENABLE_WEBREADY=OFF -DEXIV2_ENABLE_CURL=OFF -DEXIV2_BUILD_SAMPLES=OFF cmake --build build -t doc cmake --build build -t package - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: exiv2-linux64 path: ./build/exiv2-*.tar.gz @@ -57,7 +57,7 @@ jobs: name: 'Build macOS Release' runs-on: macos-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install dependencies run: | @@ -84,7 +84,7 @@ jobs: cmake --build build -t doc cmake --build build -t package - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: exiv2-macos path: ./build/exiv2-*.tar.gz @@ -95,7 +95,7 @@ jobs: name: 'Build Windows Release' runs-on: windows-2022 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Visual Studio shell uses: ilammy/msvc-dev-cmd@v1 @@ -106,14 +106,14 @@ jobs: choco install graphviz - name: Restore conan cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{github.workspace}}/conanCache key: ${{runner.os}}-release-win-${{ hashFiles('conanfile.py') }} - name: Install Conan & Common config run: | - python -m pip install conan==1.59.0 + python -m pip install conan==1.* conan profile new --detect default conan profile show default conan profile update settings.build_type=Release default @@ -129,11 +129,11 @@ jobs: - name: Build packaged release run: | - cmake --preset win-release -S . -B build -DEXIV2_TEAM_PACKAGING=ON -DEXIV2_BUILD_DOC=ON -DEXIV2_ENABLE_WEBREADY=OFF -DEXIV2_ENABLE_CURL=OFF + cmake --preset win-release -S . -B build -DEXIV2_TEAM_PACKAGING=ON -DEXIV2_BUILD_DOC=ON -DEXIV2_ENABLE_WEBREADY=OFF -DEXIV2_ENABLE_CURL=OFF -DEXIV2_BUILD_SAMPLES=OFF cmake --build build --parallel -t doc cmake --build build --parallel -t package - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: exiv2-win path: ./build/exiv2-*.zip @@ -175,7 +175,7 @@ jobs: - name: Cleanup old nightly if: env.TAG_NAME == 'nightly' - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: script: | try{ @@ -208,7 +208,7 @@ jobs: console.log( "Failed with error\n", error); } - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 - name: List downloaded files run: tree -L 3 diff --git a/ci/install_dependencies.sh b/ci/install_dependencies.sh index 7a127af891..aa98275b60 100755 --- a/ci/install_dependencies.sh +++ b/ci/install_dependencies.sh @@ -8,8 +8,8 @@ debian_build_gtest() { [ -d gtest_build ] || mkdir gtest_build cd gtest_build - cmake -DBUILD_SHARED_LIBS=1 /usr/src/googletest/googletest - make + cmake -GNinja -DBUILD_SHARED_LIBS=1 /usr/src/googletest/googletest + cmake --build . if [ -f "lib/libgtest.so" ]; then # Ubuntu 20.04 with gtest 1.10 cp lib/libgtest* /usr/lib/ @@ -41,46 +41,46 @@ distro_id=$(grep '^ID=' /etc/os-release|awk -F = '{print $2}'|sed 's/\"//g') case "$distro_id" in 'fedora') - dnf -y --refresh install gcc-c++ clang cmake make expat-devel zlib-devel brotli-devel libssh-devel libcurl-devel gmock-devel which dos2unix glibc-langpack-en diffutils inih-devel + dnf -y --refresh install gcc-c++ clang cmake ninja-build expat-devel zlib-devel brotli-devel libssh-devel libcurl-devel gmock-devel glibc-langpack-en inih-devel ;; 'debian') apt-get update - apt-get install -y cmake g++ clang make libexpat1-dev zlib1g-dev libbrotli-dev libssh-dev libcurl4-openssl-dev libgmock-dev libxml2-utils libinih-dev + apt-get install -y cmake ninja-build g++ clang libexpat1-dev zlib1g-dev libbrotli-dev libssh-dev libcurl4-openssl-dev libgmock-dev libxml2-utils libinih-dev # debian_build_gtest ;; 'arch') pacman --noconfirm -Syu - pacman --noconfirm --needed -S gcc clang cmake make expat zlib brotli libssh curl gtest dos2unix which diffutils libinih + pacman --noconfirm --needed -S gcc clang cmake ninja expat zlib brotli libssh curl gtest libinih ;; 'ubuntu') apt-get update - apt-get install -y cmake g++ clang make libexpat1-dev zlib1g-dev libbrotli-dev libssh-dev libcurl4-openssl-dev libgmock-dev libxml2-utils libinih-dev + apt-get install -y cmake ninja-build g++ clang libexpat1-dev zlib1g-dev libbrotli-dev libssh-dev libcurl4-openssl-dev libgmock-dev libxml2-utils libinih-dev # debian_build_gtest ;; 'alpine') apk update - apk add gcc g++ clang cmake make expat-dev zlib-dev brotli-dev libssh-dev curl-dev gtest gtest-dev gmock libintl gettext-dev which dos2unix bash libxml2-utils diffutils inih-dev inih-inireader-dev + apk add gcc g++ clang cmake samurai expat-dev zlib-dev brotli-dev libssh-dev curl-dev gtest gtest-dev gmock libintl gettext-dev libxml2-utils inih-dev inih-inireader-dev ;; 'rhel') dnf clean all - dnf -y install gcc-c++ clang cmake make expat-devel zlib-devel brotli-devel libssh-devel libcurl-devel which dos2unix inih-devel + dnf -y install gcc-c++ clang cmake ninja-build expat-devel zlib-devel brotli-devel libssh-devel libcurl-devel inih-devel ;; 'centos') dnf clean all - dnf -y install gcc-c++ clang cmake make expat-devel zlib-devel brotli-devel libssh-devel libcurl-devel which dos2unix git - dnf -y --enablerepo=crb install meson + dnf -y install gcc-c++ clang cmake expat-devel zlib-devel brotli-devel libssh-devel libcurl-devel git + dnf -y --enablerepo=crb install ninja-build meson centos_build_inih ;; 'opensuse-tumbleweed') zypper --non-interactive refresh - zypper --non-interactive install gcc-c++ clang cmake make libexpat-devel zlib-devel libbrotli-devel libssh-devel libcurl-devel gmock which dos2unix libxml2-tools libinih-devel + zypper --non-interactive install gcc-c++ clang cmake ninja libexpat-devel zlib-devel libbrotli-devel libssh-devel libcurl-devel gmock libxml2-tools libinih-devel ;; *) echo "Sorry, no predefined dependencies for your distribution $distro_id exist yet"