Commit 842b8050 authored by Ben Boeckel's avatar Ben Boeckel

gitlab-ci: add a macos build

parent 3e0584ba
Pipeline #191872 passed with stages
in 3 minutes and 39 seconds
......@@ -5,6 +5,7 @@ include:
# OS builds.
- local: .gitlab/os-linux.yml
- local: .gitlab/os-macos.yml
stages:
- build
......@@ -128,3 +129,26 @@ analyze:fedora31-coverage:
- test:fedora31-coverage
needs:
- test:fedora31-coverage
# macOS
## Build and test
build:macos-plain:
extends:
- .macos_plain
- .cmake_build_macos
- .cmake_build_artifacts
- .macos_builder_tags
- .run_automatically
test:macos-plain:
extends:
- .macos_plain
- .cmake_test_macos
- .macos_builder_tags
- .run_automatically
dependencies:
- build:macos-plain
needs:
- build:macos-plain
include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_macos.cmake")
# macOS-specific builder configurations and build commands
## Base configurations
.macos:
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmb-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-11.5.app/Contents/Developer"
### 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/cmb-ci"
.macos_plain:
extends: .macos_build
variables:
CMAKE_CONFIGURATION: macos_plain
## Tags
.macos_builder_tags:
tags:
- cmb
- macos
- shell
- xcode-11.5
- nonconcurrent
## macOS-specific scripts
.before_script_macos: &before_script_macos
- .gitlab/ci/cmake.sh
- .gitlab/ci/ninja.sh
- export PATH=$PWD/.gitlab:$PWD/.gitlab/cmake/bin:$PATH
- cmake --version
- ninja --version
# Download Qt
- cmake -P .gitlab/ci/download_qt.cmake
# Download the superbuild
- cmake -P .gitlab/ci/download_superbuild.cmake
- export CMAKE_PREFIX_PATH=$PWD/.gitlab/qt:$PWD/build/install
- export SUPERBUILD_PREFIX=$PWD/build
.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_test_macos:
stage: test
script:
- *before_script_macos
- ctest --output-on-failure -V -S .gitlab/ci/ctest_test.cmake
interruptible: true
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment