https://github.com/Kitware/CMake
Revision eb10bcb9fcdf9573cc1c7505b66a9c6ae90066a6 authored by Kitware Robot on 17 August 2022, 04:01:14 UTC, committed by Kitware Robot on 17 August 2022, 04:01:14 UTC
1 parent 5b949bb
Raw File
Tip revision: eb10bcb9fcdf9573cc1c7505b66a9c6ae90066a6 authored by Kitware Robot on 17 August 2022, 04:01:14 UTC
CMake Nightly Date Stamp
Tip revision: eb10bcb
os-macos.yml
# macOS-specific builder configurations and build commands

## Base configurations

.macos:
    variables:
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci ext/$CI_CONCURRENT_ID"
        # TODO: Factor this out so that each job selects the Xcode version to
        # use so that different versions can be tested in a single pipeline.
        DEVELOPER_DIR: "/Applications/Xcode-13.4.app/Contents/Developer"
        # Avoid conflicting with other projects running on the same machine.
        SCCACHE_SERVER_PORT: 4227

### Build and test

.macos_build:
    extends: .macos

    variables:
        # Note that shell runners only support runners with a single
        # concurrency level. We can't use `$CI_CONCURRENCY_ID` because this may
        # change between the build and test stages which CMake doesn't support.
        # Even if we could, it could change if other runners on the machine
        # could run at the same time, so we drop it.
        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"

.macos_x86_64_ninja:
    extends: .macos_build

    variables:
        CMAKE_CONFIGURATION: macos_x86_64_ninja
        CTEST_NO_WARNINGS_ALLOWED: 1

.macos_arm64_ninja:
    extends: .macos_build

    variables:
        CMAKE_CONFIGURATION: macos_arm64_ninja
        CTEST_NO_WARNINGS_ALLOWED: 1

.macos_x86_64_makefiles:
    extends: .macos_build

    variables:
        CMAKE_CONFIGURATION: macos_x86_64_makefiles
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMAKE_GENERATOR: "Unix Makefiles"

.macos_package:
    extends: .macos_build

    variables:
        CMAKE_CONFIGURATION: macos_package
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMAKE_CI_NO_INSTALL: 1

.macos10.10_package:
    extends: .macos_build

    variables:
        CMAKE_CONFIGURATION: macos10.10_package
        CTEST_NO_WARNINGS_ALLOWED: 1
        CMAKE_CI_NO_INSTALL: 1

### External testing

.macos_x86_64_xcode:
    extends: .macos

    variables:
        CMAKE_CONFIGURATION: macos_x86_64_xcode
        CMAKE_GENERATOR: Xcode
        CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"

.macos_arm64_xcode:
    extends: .macos

    variables:
        CMAKE_CONFIGURATION: macos_arm64_xcode
        CMAKE_GENERATOR: Xcode
        CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"

.macos_x86_64_ninja_multi:
    extends: .macos

    variables:
        CMAKE_CONFIGURATION: macos_x86_64_ninja_multi
        CMAKE_GENERATOR: "Ninja Multi-Config"
        CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"

## Tags

.macos_x86_64_builder_tags:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos
        - shell
        - xcode-13.4
        - nonconcurrent

.macos_x86_64_builder_tags_package:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos
        - shell
        - xcode-13.4
        - nonconcurrent
        - finder

.macos_x86_64_builder_ext_tags:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos
        - shell
        - xcode-13.4
        - concurrent

.macos_arm64_builder_tags:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos-arm64
        - shell
        - xcode-13.4
        - nonconcurrent

.macos_arm64_builder_ext_tags:
    tags:
        - cmake # Since this is a bare runner, pin to a project.
        - macos-arm64
        - shell
        - xcode-13.4
        - concurrent

## macOS-specific scripts

.before_script_macos: &before_script_macos
    - source .gitlab/ci/env.sh
    - .gitlab/ci/cmake.sh
    - export PATH=$PWD/.gitlab/cmake/bin:$PATH
    - .gitlab/ci/ninja.sh
    - export PATH=$PWD/.gitlab:$PATH
    - cmake --version
    - ninja --version
    # Download Qt
    - cmake -P .gitlab/ci/download_qt.cmake
    - export CMAKE_PREFIX_PATH=$PWD/.gitlab/qt

.cmake_build_macos:
    stage: build

    script:
        - *before_script_macos
        - .gitlab/ci/sccache.sh
        # Allow the server to already be running.
        - "sccache --start-server || :"
        - sccache --show-stats
        - ctest -VV -S .gitlab/ci/ctest_configure.cmake
        - ctest -VV -S .gitlab/ci/ctest_build.cmake
        - sccache --show-stats

    interruptible: true

.cmake_build_macos_package:
    stage: build

    script:
        - *before_script_macos
        - ctest -VV -S .gitlab/ci/ctest_configure.cmake
        - ctest -VV -S .gitlab/ci/ctest_build.cmake
        - cd build
        - cpack -G TGZ
        - cpack -G DragNDrop

    interruptible: true

.cmake_test_macos:
    stage: test

    script:
        - *before_script_macos
        - ctest --output-on-failure -V -S .gitlab/ci/ctest_test.cmake

    interruptible: true

.cmake_test_macos_external:
    stage: test-ext

    script:
        - *before_script_macos
        - .gitlab/ci/sccache.sh
        # Allow the server to already be running.
        - "sccache --start-server || :"
        - sccache --show-stats
        - "$LAUNCHER build/install/CMake.app/Contents/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake"
        - sccache --show-stats

    interruptible: true
back to top