From b57b2358cba07dc339da51dd330b5693af8def09 Mon Sep 17 00:00:00 2001 From: Toni Saario Date: Tue, 12 Jan 2021 18:09:36 +0200 Subject: [PATCH] macOS: Split building and testing stages We now build with the latest Xcode available, and then run the tests on all the supported deployment target (10.14, 10.15, 11). At this point we have the following build/test coverage: - Packaging build, all modules tested on: - 10.14 (significant) - 10.15 (insignificant) - 11.x (insignificant) - Developer build, qtbase/declarative tested on: - 10.14 (significant) - 10.15 (insignificant) - 11.x (insignificant) Change-Id: I309bbf5ace7b22b768203f579e29f7a9e2b589b9 Reviewed-by: Toni Saario --- coin/platform_configs/cmake_platforms.yaml | 51 +------------------ .../macos-developer-build-tests.yaml | 20 ++++++++ coin/platform_configs/macos.yaml | 46 +++++++++++++++++ coin/platform_configs/qtbase.yaml | 14 ++--- coin/platform_configs/qtdeclarative.yaml | 16 ++---- 5 files changed, 77 insertions(+), 70 deletions(-) create mode 100644 coin/platform_configs/macos-developer-build-tests.yaml create mode 100644 coin/platform_configs/macos.yaml diff --git a/coin/platform_configs/cmake_platforms.yaml b/coin/platform_configs/cmake_platforms.yaml index c9b94219..1f18bcdf 100644 --- a/coin/platform_configs/cmake_platforms.yaml +++ b/coin/platform_configs/cmake_platforms.yaml @@ -3,7 +3,8 @@ Include: [ cmake_platforms_qemu.yaml, cmake_platforms_target_android_host_linux.yaml, cmake_platforms_target_android_host_macos.yaml, - cmake_platforms_target_android_host_windows.yaml + cmake_platforms_target_android_host_windows.yaml, + macos.yaml ] Configurations: - @@ -58,54 +59,6 @@ Configurations: Configure arguments: '-DQT_BUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DFEATURE_sql_mysql=OFF -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}} -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' Environment variables: ['NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache'] -- - Id: 'macos-10.14-host' - Template: 'qtci-macos-10.14-x86_64' - Compiler: 'Clang' - Features: ['Packaging', 'Sccache'] - Configure arguments: '-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFEATURE_separate_debug_info=ON -DFEATURE_headersclean=ON -DFEATURE_framework=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/..' - Environment variables: [ - 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', - 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - ] -- - Template: 'qtci-macos-10.14-x86_64' - Compiler: 'Clang' - Features: ['DisableTests', 'Sccache'] - Configure arguments: '-DFEATURE_developer_build=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFEATURE_framework=OFF -DQT_NAMESPACE=TestNamespace -DQT_BUILD_EXAMPLES=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - Environment variables: [ - 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', - 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - ] -- - Id: 'macos-10.15-host' - Template: 'qtci-macos-10.15-x86_64-100' - Compiler: 'Clang' - Features: ['Packaging', 'Sccache', 'InsignificantTests'] - Configure arguments: '-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFEATURE_separate_debug_info=ON -DFEATURE_headersclean=ON -DFEATURE_framework=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/..' - Environment variables: [ - 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', - 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - ] -- - Template: 'qtci-macos-10.15-x86_64-100' - Compiler: 'Clang' - Features: ['Sccache', 'InsignificantTests'] - Configure arguments: '-DFEATURE_developer_build=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_WITH_PCH=OFF -DFEATURE_framework=OFF -DQT_NAMESPACE=TestNamespace -DQT_BUILD_EXAMPLES=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - Environment variables: [ - 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', - 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - ] -- - Id: 'macos-11.0-host' - Template: 'qtci-macos-11.0-x86_64-100' - Compiler: 'Clang' - Features: ['Packaging', 'Sccache', 'InsignificantTests'] - Configure arguments: '-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFEATURE_separate_debug_info=ON -DFEATURE_headersclean=ON -DFEATURE_framework=ON -DCMAKE_OSX_SYSROOT:PATH=/Applications/Xcode12.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/..' - Environment variables: [ - 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', - 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - ] - Template: 'qtci-windows-10-x86_64-52' Compiler: 'MSVC2019' diff --git a/coin/platform_configs/macos-developer-build-tests.yaml b/coin/platform_configs/macos-developer-build-tests.yaml new file mode 100644 index 00000000..458462d5 --- /dev/null +++ b/coin/platform_configs/macos-developer-build-tests.yaml @@ -0,0 +1,20 @@ +Version: 2 +Configurations: + - + Id: 'macos-10.14-x86_64-developer-build-tests' + Template: 'qtci-macos-10.14-x86_64' + Compiler: 'Clang' + Features: ['Sccache', 'TestOnly'] + Platform dependency: 'macos-latest-xcode-x86_64-developer-build' + - + Id: 'macos-10.15-x86_64-developer-build-tests' + Template: 'qtci-macos-10.15-x86_64-100' + Compiler: 'Clang' + Features: ['Sccache', 'TestOnly', 'InsignificantTests'] + Platform dependency: 'macos-latest-xcode-x86_64-developer-build' + - + Id: 'macos-11-x86_64-developer-build-tests' + Template: 'qtci-macos-11.0-x86_64-100' + Compiler: 'Clang' + Features: ['Sccache', 'TestOnly', 'InsignificantTests'] + Platform dependency: 'macos-latest-xcode-x86_64-developer-build' diff --git a/coin/platform_configs/macos.yaml b/coin/platform_configs/macos.yaml new file mode 100644 index 00000000..fcbd14bf --- /dev/null +++ b/coin/platform_configs/macos.yaml @@ -0,0 +1,46 @@ +Version: 2 +Configurations: + # Build with latest Xcode + - + Id: 'macos-latest-xcode-x86_64-packaging-build' + Template: 'qtci-macos-11.0-x86_64-100' + Compiler: 'Clang' + Features: ['Packaging', 'Sccache', 'DoNotRunTests'] + Configure arguments: '-DQT_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFEATURE_separate_debug_info=ON -DFEATURE_headersclean=ON -DFEATURE_framework=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/..' + Environment variables: [ + 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', + 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' + ] + + # Then run tests on all supported deployment targets + - + Id: 'macos-10.14-x86_64-tests' + Template: 'qtci-macos-10.14-x86_64' + Compiler: 'Clang' + Features: ['Sccache', 'TestOnly'] + Platform dependency: 'macos-latest-xcode-x86_64-packaging-build' + - + Id: 'macos-10.15-x86_64-tests' + Template: 'qtci-macos-10.15-x86_64-100' + Compiler: 'Clang' + Features: ['Sccache', 'TestOnly', 'InsignificantTests'] + Platform dependency: 'macos-latest-xcode-x86_64-packaging-build' + - + Id: 'macos-11-x86_64-tests' + Template: 'qtci-macos-11.0-x86_64-100' + Compiler: 'Clang' + Features: ['Sccache', 'TestOnly', 'InsignificantTests'] + Platform dependency: 'macos-latest-xcode-x86_64-packaging-build' + + # Build developer builds for all modules, but only run tests for qtbase and declarative. + # See macos-developer-build-tests.yaml for the tests + - + Id: 'macos-latest-xcode-x86_64-developer-build' + Template: 'qtci-macos-11.0-x86_64-100' + Compiler: 'Clang' + Features: ['Sccache', 'DoNotRunTests'] + Configure arguments: '-DFEATURE_developer_build=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_WITH_PCH=OFF -DFEATURE_framework=OFF -DQT_NAMESPACE=TestNamespace -DQT_BUILD_EXAMPLES=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' + Environment variables: [ + 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', + 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' + ] diff --git a/coin/platform_configs/qtbase.yaml b/coin/platform_configs/qtbase.yaml index 3d254cbe..681d11fe 100644 --- a/coin/platform_configs/qtbase.yaml +++ b/coin/platform_configs/qtbase.yaml @@ -1,15 +1,9 @@ Version: 2 -Include: [cmake_platforms.yaml] +Include: [ + cmake_platforms.yaml, + macos-developer-build-tests.yaml +] Configurations: -- - Template: 'qtci-macos-10.14-x86_64' - Compiler: 'Clang' - Features: ['Sccache'] - Configure arguments: '-DFEATURE_developer_build=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_WITH_PCH=OFF -DFEATURE_framework=OFF -DQT_NAMESPACE=TestNamespace -DQT_BUILD_EXAMPLES=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - Environment variables: [ - 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', - 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - ] - Template: 'qtci-linux-CentOS-8.1-x86_64-50' Target os: 'Android_ANY' diff --git a/coin/platform_configs/qtdeclarative.yaml b/coin/platform_configs/qtdeclarative.yaml index ede20ead..03773931 100644 --- a/coin/platform_configs/qtdeclarative.yaml +++ b/coin/platform_configs/qtdeclarative.yaml @@ -1,12 +1,6 @@ Version: 2 -Include: [cmake_platforms.yaml] -Configurations: -- - Template: 'qtci-macos-10.14-x86_64' - Compiler: 'Clang' - Features: ['Sccache'] - Configure arguments: '-DFEATURE_developer_build=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_WITH_PCH=OFF -DFEATURE_framework=OFF -DQT_NAMESPACE=TestNamespace -DQT_BUILD_EXAMPLES=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - Environment variables: [ - 'NON_QTBASE_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache', - 'TEST_CONFIGURE_ARGS=-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache' - ] +Include: [ + cmake_platforms.yaml, + macos-developer-build-tests.yaml +] +Configurations: []