# Lists of paths for artifacts of various stages.

.cmake_build_artifacts:
    artifacts:
        expire_in: 1d
        paths:
            # Test specifications.
            - ${CMAKE_CI_BUILD_DIR}/**/CTestTestfile.cmake

            # Allow CMake to find CMAKE_ROOT.
            - ${CMAKE_CI_BUILD_DIR}/CMakeFiles/CMakeSourceDir.txt

            # Take the install tree.
            - ${CMAKE_CI_BUILD_DIR}/install/

            # We need the main binaries.
            - ${CMAKE_CI_BUILD_DIR}/bin/
            # The cache is needed for the installation test.
            - ${CMAKE_CI_BUILD_DIR}/CMakeCache.txt
            # Test binaries. Eventually these might be better under
            # `Source/Tests` or the like.
            - ${CMAKE_CI_BUILD_DIR}/Tests/EnforceConfig.cmake
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeBuildTest.cmake
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeBuildDoubleProjectTest.cmake
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/runcompilecommands
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/runcompilecommands.exe
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/test*
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/valgrind
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/purify
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/memcheck_fail
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/BC
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/cuda-memcheck
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/valgrind.exe
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/purify.exe
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/memcheck_fail.exe
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/BC.exe
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/cuda-memcheck.exe
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/NoLog
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*Lib/*LibTests
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*Lib/*LibTests.exe
            - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/cmsysTest*
            - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/testConsoleBufChild.exe
            - ${CMAKE_CI_BUILD_DIR}/Utilities/cmcurl/curltest
            - ${CMAKE_CI_BUILD_DIR}/Utilities/cmcurl/curltest.exe
            - ${CMAKE_CI_BUILD_DIR}/Utilities/KWIML/test/kwiml_test
            - ${CMAKE_CI_BUILD_DIR}/Utilities/KWIML/test/kwiml_test.exe
            - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/*cmsysTestDynload.*
            - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/dynloaddir/cmsysTestDynloadImpl.dll
            - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/dynloaddir/cmsysTestDynloadUse.dll

            # Test directories.
            - ${CMAKE_CI_BUILD_DIR}/Tests/CTest*
            - ${CMAKE_CI_BUILD_DIR}/Tests/Find*
            - ${CMAKE_CI_BUILD_DIR}/Tests/Qt*
            - ${CMAKE_CI_BUILD_DIR}/Tests/RunCMake/
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeOnly/
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeTests/
            - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeGUI/
            - ${CMAKE_CI_BUILD_DIR}/Tests/FortranC/

            # CTest/CDash information.
            - ${CMAKE_CI_BUILD_DIR}/Testing/
            - ${CMAKE_CI_BUILD_DIR}/DartConfiguation.tcl
            - ${CMAKE_CI_BUILD_DIR}/CTestCustom.cmake
            - ${CMAKE_CI_BUILD_DIR}/cdash-build-id
        reports:
            annotations:
                - ${CMAKE_CI_BUILD_DIR}/annotations.json

.cmake_release_artifacts:
    artifacts:
        expire_in: 5d
        name: "$CMAKE_CI_ARTIFACTS_NAME"
        # Release artifacts are of interest even for failed jobs.
        when: always
        paths:
            # Any packages made.
            - ${CMAKE_CI_BUILD_DIR}/cmake-*-linux-x86_64.*
            - ${CMAKE_CI_BUILD_DIR}/cmake-*-linux-aarch64.*
            - ${CMAKE_CI_BUILD_DIR}/cmake-*-macos*-universal.*
            - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-x86_64.*
            - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-i386.*
            - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-arm64.*
            # Any source packages made.
            - ${CMAKE_CI_BUILD_DIR}/cmake-*.tar.gz
            - ${CMAKE_CI_BUILD_DIR}/cmake-*.zip
            # Any unsigned packages made.
            - ${CMAKE_CI_BUILD_DIR}/unsigned/cmake-*
        reports:
            annotations:
                - ${CMAKE_CI_BUILD_DIR}/annotations.json

.cmake_cdash_artifacts:
    artifacts:
        expire_in: 1d
        when: always
        reports:
            annotations:
                - ${CMAKE_CI_BUILD_DIR}/annotations.json

.cmake_junit_artifacts:
    artifacts:
        expire_in: 1d
        when: always
        reports:
            annotations:
                - ${CMAKE_CI_BUILD_DIR}/annotations.json
            junit:
                - ${CMAKE_CI_BUILD_DIR}/junit.xml

.cmake_sphinx_artifacts:
    artifacts:
        expire_in: 1d
        when: always
        reports:
            annotations:
                - ${CMAKE_CI_BUILD_DIR}/annotations.json
        paths:
            # Take the sphinx logs.
            - ${CMAKE_CI_BUILD_DIR}/build-*.log
            - ${CMAKE_CI_BUILD_DIR}/linkcheck/output.*
            # Take the HTML output.
            - ${CMAKE_CI_BUILD_DIR}/html/

.cmake_test_artifacts:
    artifacts:
        expire_in: 1d
        # External testing can be useful even if test jobs fail.
        when: always
        reports:
            junit:
                - ${CMAKE_CI_BUILD_DIR}/junit.xml
            annotations:
                - ${CMAKE_CI_BUILD_DIR}/annotations.json
        paths:
            # Take the install tree.
            - ${CMAKE_CI_BUILD_DIR}/install/

.cmake_doc_artifacts:
    artifacts:
        expire_in: 1d
        reports:
            annotations:
                - ${CMAKE_CI_BUILD_DIR}/annotations.json
        paths:
            # Take the install tree.
            - ${CMAKE_CI_BUILD_DIR}/install-doc/

.cmake_org_help_artifacts:
    artifacts:
        expire_in: 1d
        paths:
            - ${CMAKE_CI_BUILD_DIR}/html
        exclude:
            - ${CMAKE_CI_BUILD_DIR}/html/.buildinfo

.cmake_tidy_artifacts:
    artifacts:
        expire_in: 1d
        when: always
        paths:
            - clang-tidy-fixes.patch
