valentina/appveyor.yml

976 lines
55 KiB
YAML
Raw Normal View History

# Notes:
# - Minimal appveyor.yml file is an empty file. All sections are optional.
# - Indent each level of configuration with 2 spaces. Do not use tabs!
# - All section names are case-sensitive.
# - Section names should be unique on each level.
#---------------------------------#
# general configuration #
#---------------------------------#
# version format
version: '{build}-{branch}'
# branches to build
branches:
# whitelist
only:
- develop
2023-02-22 15:45:53 +01:00
- master
2024-04-18 19:12:23 +02:00
skip_commits:
files:
- ".cirrus.yml"
# Do not build on tags (GitHub and BitBucket)
skip_tags: true
2023-02-22 15:45:53 +01:00
platform:
- x86
- x64
#---------------------------------#
2023-02-22 15:45:53 +01:00
# environment setup #
#---------------------------------#
# set clone depth
clone_depth: 1 # clone entire repository history if not defined
# fetch repository as zip archive
shallow_clone: false # default is "false"
environment:
2021-05-01 18:54:48 +02:00
ACCESS_TOKEN:
2023-02-22 15:45:53 +01:00
secure: RUhnEHqaR8KhalOMWwZZOoO342Ja50QV4KpEWdm9g3pG+jG7i6aJqUmeKF1l5VN6dzksk1u+yN6pOLnU8oGcaVQ6v+1dpKK1oZvF0tyHhNE=
2024-01-19 15:14:48 +01:00
APPVEYOR_SAVE_CACHE_ON_ERROR: "true"
2024-03-12 15:39:44 +01:00
VALENTINA_VERSION: 0_7_52
2023-02-22 15:45:53 +01:00
matrix:
2024-04-22 18:58:33 +02:00
- job_name: Windows_Qt_6_7_(MSVC_x64)
job_group: 'Windows (qbs)'
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
COMPILER: msvc
QT: Qt\6.7\msvc2019_64
QT_VERSION: Qt6_7
BUILD_SYSTEM: "qbs"
QMAKE: qmake.exe
ENABLE_PCH: true
MSVC_PATH: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.39.33519\\bin\\Hostx64\\x64"
VSINSTALLDIR: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\"
ARCH: x64
PYTHON: "C:\\Python311-x64"
TARGET_PLATFORM: "Windows10+"
CHOCOLATEY_PACKAGES: false
WINDEPLOYQT_BIN_PATH: "undefined"
WINDEPLOYQT_COMPILER_RUNTIME: "true"
WINDEPLOYQT_NO_COMPILER_RUNTIME: "false"
DEPLOY: true
RUN_TESTS: true
WITH_CRASH_REPORTING: True
2024-04-13 14:32:16 +02:00
# - job_name: Windows_Qt_6_7_(GCC_x64)
2024-04-22 18:58:33 +02:00
# job_group: 'Windows (qbs)'
2024-01-20 13:10:00 +01:00
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
# COMPILER: mingw
# COMPILER_CPPSTD: gnu17
# COMPILER_LIBCXX: libstdc++11
2024-04-13 14:32:16 +02:00
# QT: Qt\6.7\mingw_64
# QT_VERSION: Qt6_7
2024-01-20 13:10:00 +01:00
# BUILD_SYSTEM: "qbs"
# QMAKE: qmake.exe
# ENABLE_PCH: true
# GCC_VERSION: 13.2
# MINGW_PATH: C:\ProgramData\mingw64\mingw64\bin
# ARCH: x64
# PYTHON: "C:\\Python311-x64"
2024-01-25 11:27:22 +01:00
# TARGET_PLATFORM: "Windows10+"
2024-01-20 13:10:00 +01:00
# CHOCOLATEY_PACKAGES: true
# CHOCOLATEY_MINGW_VERSION: 13.2.0
# WINDEPLOYQT_BIN_PATH: "undefined"
# WINDEPLOYQT_COMPILER_RUNTIME: "false"
# WINDEPLOYQT_NO_COMPILER_RUNTIME: "true"
# DEPLOY: true
# RUN_TESTS: true
# WITH_CRASH_REPORTING: False
2024-01-18 07:24:25 +01:00
- job_name: MacOS_12_Qt_5_15 (qbs, multibundle)
2024-04-22 18:58:33 +02:00
job_group: 'MacOS_12 (qbs)'
APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey
2023-09-14 12:14:43 +02:00
COMPILER: clang
QT: Qt/5.15/clang_64
QT_VERSION: Qt5_15
BUILD_SYSTEM: "qbs"
ARCH: x64
2024-02-18 09:35:18 +01:00
XCODE_VERSION: 14.2.0
2024-01-25 11:27:22 +01:00
TARGET_PLATFORM: "macOS_10.13+"
2023-09-14 12:14:43 +02:00
MACOS_DEPLOYMENT_TARGET: 10.13
MULTI_BUNDLE: true
DEPLOY: true
- job_name: MacOS_12_Qt_5_15 (qbs, singlebundle)
2024-04-22 18:58:33 +02:00
job_group: 'MacOS_12 (qbs)'
APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey
2023-09-14 12:14:43 +02:00
COMPILER: clang
QT: Qt/5.15/clang_64
QT_VERSION: Qt5_15
BUILD_SYSTEM: "qbs"
ARCH: x64
2024-02-18 09:35:18 +01:00
XCODE_VERSION: 14.2.0
2024-01-25 11:27:22 +01:00
TARGET_PLATFORM: "macOS_10.13+"
2023-09-14 12:14:43 +02:00
MACOS_DEPLOYMENT_TARGET: 10.13
MULTI_BUNDLE: false
DEPLOY: true
- job_name: MacOS_14_Qt_6_6 (multibundle)
2024-04-22 18:58:33 +02:00
job_group: 'MacOS_14'
APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma
COMPILER: clang
QT: Qt/6.6/macos
QT_VERSION: Qt6
BUILD_SYSTEM: "qbs"
ARCH: x64
2024-02-18 09:35:18 +01:00
XCODE_VERSION: 15.2.0
2024-04-01 13:11:55 +02:00
TARGET_PLATFORM: "macOS_12+"
MACOS_DEPLOYMENT_TARGET: 12.0
MULTI_BUNDLE: true
DEPLOY: true
- job_name: MacOS_14_Qt_6_6 (singlebundle)
2024-04-22 18:58:33 +02:00
job_group: 'MacOS_14'
APPVEYOR_BUILD_WORKER_IMAGE: macos-sonoma
COMPILER: clang
QT: Qt/6.6/macos
QT_VERSION: Qt6
BUILD_SYSTEM: "qbs"
ARCH: x64
2024-02-18 09:35:18 +01:00
XCODE_VERSION: 15.2.0
2024-04-01 13:11:55 +02:00
TARGET_PLATFORM: "macOS_12+"
MACOS_DEPLOYMENT_TARGET: 12.0
MULTI_BUNDLE: false
DEPLOY: true
2024-03-28 14:12:27 +01:00
- job_name: Windows_Qt_5_15_(qbs_GCC_x86)
2024-04-22 18:58:33 +02:00
job_group: 'Windows (qbs)'
2024-03-28 14:12:27 +01:00
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
COMPILER: mingw
COMPILER_CPPSTD: gnu17
COMPILER_LIBCXX: libstdc++11
QT: Qt\5.15\mingw81_32
QT_VERSION: Qt5_15
BUILD_SYSTEM: "qbs"
QMAKE: qmake.exe
ENABLE_PCH: true
GCC_VERSION: 8.1
MINGW_PATH: C:\Qt\Tools\mingw810_32\bin
ARCH: x86
PYTHON: "C:\\Python311"
TARGET_PLATFORM: "Windows7+"
CHOCOLATEY_PACKAGES: false
WINDEPLOYQT_BIN_PATH: "undefined"
WINDEPLOYQT_COMPILER_RUNTIME: "true"
WINDEPLOYQT_NO_COMPILER_RUNTIME: "false"
DEPLOY: true
RUN_TESTS: true
WITH_CRASH_REPORTING: False
2023-02-22 15:45:53 +01:00
- job_name: Windows_Qt_5_15_(make_GCC_x86)
2024-04-22 18:58:33 +02:00
job_group: 'Windows (make)'
2023-02-22 15:45:53 +01:00
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
COMPILER: mingw
QT: Qt\5.15\mingw81_32
QT_VERSION: Qt5_15
BUILD_SYSTEM: "make"
MINGW_PATH: C:\Qt\Tools\mingw810_32\bin
ARCH: x86
PYTHON: "C:\\Python311"
2024-01-25 11:27:22 +01:00
TARGET_PLATFORM: "Windows7+"
2023-02-22 15:45:53 +01:00
DEPLOY: false
- job_name: Windows_Qt_5_15_(qbs_GCC_x64)
2024-04-22 18:58:33 +02:00
job_group: 'Windows (qbs)'
2023-02-22 15:45:53 +01:00
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
COMPILER: mingw
2023-02-26 13:54:29 +01:00
COMPILER_CPPSTD: gnu17
COMPILER_LIBCXX: libstdc++11
2023-02-22 15:45:53 +01:00
QT: Qt\5.15\mingw81_64
QT_VERSION: Qt5_15
BUILD_SYSTEM: "qbs"
QMAKE: qmake.exe
2023-02-25 19:35:40 +01:00
ENABLE_PCH: true
2023-02-24 19:54:09 +01:00
GCC_VERSION: 8.1
2023-02-22 15:45:53 +01:00
MINGW_PATH: C:\Qt\Tools\mingw810_64\bin
ARCH: x64
PYTHON: "C:\\Python311-x64"
2024-01-25 11:27:22 +01:00
TARGET_PLATFORM: "Windows7+"
2023-07-15 15:14:45 +02:00
CHOCOLATEY_PACKAGES: false
WINDEPLOYQT_BIN_PATH: "undefined"
2024-01-19 15:18:02 +01:00
WINDEPLOYQT_COMPILER_RUNTIME: "true"
WINDEPLOYQT_NO_COMPILER_RUNTIME: "false"
2023-02-22 15:45:53 +01:00
DEPLOY: false
RUN_TESTS: true
WITH_CRASH_REPORTING: False
2023-02-22 15:45:53 +01:00
- job_name: Windows_Qt_5_15_(qbs_MSVC_x64)
2024-04-22 18:58:33 +02:00
job_group: 'Windows (qbs)'
2023-02-22 15:45:53 +01:00
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
COMPILER: msvc
QT: Qt\5.15\msvc2019_64
BUILD_SYSTEM: "qbs"
QMAKE: qmake.exe
2023-02-25 19:35:40 +01:00
ENABLE_PCH: true
2023-02-23 09:21:37 +01:00
MSVC_PATH: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30133\\bin\\Hostx64\\x64"
VSINSTALLDIR: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\"
2023-02-22 15:45:53 +01:00
VSVER: 16
ARCH: x64
PYTHON: "C:\\Python311-x64"
2024-01-25 11:27:22 +01:00
TARGET_PLATFORM: "Windows7+"
2023-07-15 15:14:45 +02:00
CHOCOLATEY_PACKAGES: false
WINDEPLOYQT_BIN_PATH: "undefined"
2024-01-19 15:18:02 +01:00
WINDEPLOYQT_COMPILER_RUNTIME: "true"
WINDEPLOYQT_NO_COMPILER_RUNTIME: "false"
DEPLOY: false
RUN_TESTS: true
WITH_CRASH_REPORTING: False
2023-02-22 15:45:53 +01:00
- job_name: Windows_Qt_5_15_(make_GCC_x64)
2024-04-22 18:58:33 +02:00
job_group: 'Windows (make)'
2023-02-22 15:45:53 +01:00
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
COMPILER: mingw
QT: Qt\5.15\mingw81_64
QT_VERSION: Qt5_15
BUILD_SYSTEM: "make"
MINGW_PATH: C:\Qt\Tools\mingw810_64\bin
ARCH: x64
PYTHON: "C:\\Python311-x64"
2024-01-25 11:27:22 +01:00
TARGET_PLATFORM: "Windows7+"
2023-02-22 15:45:53 +01:00
DEPLOY: false
- job_name: Windows_Qt_5_15_(nmake_MSVC_x64)
2024-04-22 18:58:33 +02:00
job_group: 'Windows (make)'
2023-02-22 15:45:53 +01:00
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
COMPILER: msvc
QT: Qt\5.15\msvc2019_64
BUILD_SYSTEM: "nmake"
VSVER: 16
ARCH: x64
PYTHON: "C:\\Python311-x64"
2024-01-25 11:27:22 +01:00
TARGET_PLATFORM: "Windows7+"
2023-02-22 15:45:53 +01:00
DEPLOY: false
2024-02-17 21:02:02 +01:00
- job_name: MacOS_12_Qt_5_15 (make)
2024-04-22 18:58:33 +02:00
job_group: 'MacOS (make)'
2024-02-17 21:02:02 +01:00
APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey
2023-02-22 15:45:53 +01:00
COMPILER: clang
QT: Qt/5.15/clang_64
2023-02-22 15:45:53 +01:00
QT_VERSION: Qt5_15
BUILD_SYSTEM: "make"
ARCH: x64
2024-02-17 21:02:02 +01:00
XCODE_VERSION: 13.4.1
2024-01-25 11:27:22 +01:00
TARGET_PLATFORM: "macOS_10.13+"
2023-02-22 15:45:53 +01:00
DEPLOY: false
matrix:
fast_finish: false
exclude:
2024-01-20 13:10:00 +01:00
# - platform: x86
2024-04-13 14:32:16 +02:00
# job_name: Windows_Qt_6_7_(GCC_x64)
2023-06-24 12:14:00 +02:00
- platform: x86
2024-04-13 14:32:16 +02:00
job_name: Windows_Qt_6_7_(MSVC_x64)
2023-02-22 15:45:53 +01:00
- platform: x86
job_name: Windows_Qt_5_15_(make_GCC_x64)
- platform: x86
job_name: Windows_Qt_5_15_(nmake_MSVC_x64)
- platform: x86
job_name: Windows_Qt_5_15_(qbs_GCC_x64)
- platform: x86
job_name: Windows_Qt_5_15_(qbs_MSVC_x64)
2023-02-24 14:56:20 +01:00
- platform: x86
2024-02-17 21:02:02 +01:00
job_name: MacOS_14_Qt_6_6 (multibundle)
2023-02-24 14:56:20 +01:00
- platform: x86
2024-02-17 21:02:02 +01:00
job_name: MacOS_14_Qt_6_6 (singlebundle)
2023-02-24 14:56:20 +01:00
- platform: x86
2024-02-17 21:02:02 +01:00
job_name: MacOS_12_Qt_5_15 (qbs, multibundle)
2023-02-24 14:56:20 +01:00
- platform: x86
2024-02-17 21:02:02 +01:00
job_name: MacOS_12_Qt_5_15 (qbs, singlebundle)
2023-02-24 14:56:20 +01:00
- platform: x86
2024-02-17 21:02:02 +01:00
job_name: MacOS_12_Qt_5_15 (make)
2023-02-22 15:45:53 +01:00
- platform: x64
job_name: Windows_Qt_5_15_(make_GCC_x86)
- platform: x64
job_name: Windows_Qt_5_15_(qbs_GCC_x86)
for:
#---------------------------------#
2023-02-22 15:45:53 +01:00
# Windows #
#---------------------------------#
2023-02-22 15:45:53 +01:00
-
matrix:
only:
2024-04-22 18:58:33 +02:00
- job_group: 'Windows (qbs)'
2023-02-22 15:45:53 +01:00
# clone directory
clone_folder: c:\projects\valentina
2023-02-28 13:31:36 +01:00
cache:
- C:\Users\appveyor\.conan\data -> conan-cache
2023-02-22 15:45:53 +01:00
# scripts that are called at very beginning, before repo cloning
init:
# Uncomment if need access through RDP
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
2023-03-06 08:42:03 +01:00
- ver
2023-02-22 15:45:53 +01:00
# Path before
- path
- set QTDIR=C:\%QT%
- set QT_PLUGIN_PATH=%QTDIR%\plugins
- set PATH=%QTDIR%\bin;%QTDIR%\include;C:\ProgramData\chocolatey\bin;C:\Qt\Tools\QtCreator\bin;C:\Tools\PsTools;C:\Program Files\Git\cmd;C:\Program Files\Git\usr\bin;C:\Program Files\Git LFS;C:\Tools\GitVersion;C:\Windows\system32;C:\Windows;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\CMake\bin;%PYTHON%;%PYTHON%\Scripts;C:\Program Files (x86)\Inno Setup 6
2023-02-22 15:45:53 +01:00
# Set VC variables for the platform
- ps: |
2024-02-08 15:41:52 +01:00
& choco install qbs -y --version=2.2.2
2023-02-22 15:45:53 +01:00
if ($env:COMPILER -eq "msvc") {
if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2022") {
if ($env:ARCH -eq "x64") {
cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
2023-02-25 19:35:40 +01:00
} elseif ($env:ARCH -eq "arm64") {
cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsamd64_arm64.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
} else {
cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
}
} elseif ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2019") {
if ($env:ARCH -eq "x64") {
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
2023-02-25 19:35:40 +01:00
} elseif ($env:ARCH -eq "arm64") {
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_arm64.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
} else {
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
}
}
Get-Content "$env:temp\vcvars.txt" | Foreach-Object {
if ($_ -match "^(.*?)=(.*)$") {
Set-Content "env:\$($matches[1])" $matches[2]
}
}
2023-02-25 17:18:34 +01:00
} else {
2023-07-15 15:14:45 +02:00
if ($env:CHOCOLATEY_PACKAGES -eq "true") {
2023-07-15 15:25:28 +02:00
& choco install mingw -y --version $env:CHOCOLATEY_MINGW_VERSION
2023-02-28 09:31:37 +01:00
}
2023-02-25 17:23:36 +01:00
$env:Path += ";$env:MINGW_PATH"
2023-02-25 17:18:34 +01:00
$env:CC = "gcc.exe"
$env:CXX = "g++.exe"
2023-02-22 15:45:53 +01:00
}
# Path after
- path
# Check that we have the expected version for Python
- (python --version)
# Install the build dependencies of the project.
- (python -m pip install --upgrade pip)
- if "%DEPLOY%" == "true" (python -m pip install dropbox py7zr)
- python -m pip install conan==1.63.0
2023-06-24 13:56:56 +02:00
- dir "C:\"
2023-06-24 14:13:07 +02:00
- dir "C:\Qt"
- dir "C:\Qt\Tools"
2023-06-24 13:56:56 +02:00
- dir %QTDIR%
2023-02-26 19:41:34 +01:00
- dir "%QTDIR%\bin"
2023-02-22 15:49:26 +01:00
- qbs --version
2023-02-22 15:45:53 +01:00
before_build:
- cd %APPVEYOR_BUILD_FOLDER%
2023-02-23 10:28:07 +01:00
- qbs-setup-toolchains --detect
- qbs-setup-qt %QTDIR%\bin\%QMAKE% qt6
2023-02-22 15:45:53 +01:00
- qbs-config defaultProfile qt6
2023-02-23 09:54:21 +01:00
- dir "C:\Qt\Tools"
2024-01-19 10:01:21 +01:00
- conan config install https://gist.github.com/dismine/0abab496338183c36661e635c2aeab8d.git
2024-01-18 15:01:05 +01:00
- type C:\Users\appveyor\.conan\settings.yml
2023-02-25 16:22:45 +01:00
- conan profile new valentina
- conan profile update settings.build_type=Release valentina
- conan profile update settings.os=Windows valentina
2023-02-22 15:45:53 +01:00
- ps: |
2023-02-25 09:26:21 +01:00
if ($env:ARCH -eq "x64") {
2023-02-25 16:22:45 +01:00
& conan profile update settings.arch=x86_64 valentina
2023-02-25 09:26:21 +01:00
} else {
2023-02-25 16:22:45 +01:00
& conan profile update settings.arch=x86 valentina
2023-02-25 09:26:21 +01:00
}
2023-02-22 15:45:53 +01:00
if ($env:COMPILER -eq "msvc")
{
2023-02-23 10:28:07 +01:00
& qbs-setup-toolchains.exe --type msvc $env:MSVC_PATH\cl.exe $env:COMPILER
& qbs-config.exe profiles.qt6.baseProfile $env:COMPILER
2023-02-25 16:22:45 +01:00
& conan profile update settings.compiler=msvc valentina
& conan profile update settings.compiler.cppstd=17 valentina
& conan profile update settings.compiler.runtime=dynamic valentina
& conan profile update settings.compiler.runtime_type=Release valentina
& conan profile update settings.compiler.version=192 valentina
2023-02-22 15:45:53 +01:00
}
else
{
2023-02-23 10:28:07 +01:00
& qbs-setup-toolchains.exe --type mingw $env:MINGW_PATH\g++.exe $env:COMPILER
& qbs-config.exe profiles.qt6.baseProfile $env:COMPILER
2023-02-25 16:22:45 +01:00
& conan profile update settings.compiler=gcc valentina
2023-02-26 13:54:29 +01:00
& conan profile update settings.compiler.cppstd=$env:COMPILER_CPPSTD valentina
& conan profile update settings.compiler.libcxx=$env:COMPILER_LIBCXX valentina
2023-02-25 16:22:45 +01:00
& conan profile update settings.compiler.version=$env:GCC_VERSION valentina
2023-02-24 19:54:09 +01:00
}
2023-02-24 14:56:20 +01:00
- qbs-config --list profiles
2023-02-22 15:45:53 +01:00
build_script:
2024-01-18 15:01:05 +01:00
- conan profile list
- conan install . -s os=Windows --build=missing -o with_crash_reporting=%WITH_CRASH_REPORTING% -o with_xerces=True -pr=valentina
- git fetch --tags
2024-03-26 09:25:10 +01:00
- qbs build -f valentina.qbs -d %APPVEYOR_BUILD_FOLDER%\build --jobs %NUMBER_OF_PROCESSORS% config:release qbs.installRoot:%APPVEYOR_BUILD_FOLDER%\build\install-root\valentina profile:qt6 project.enableConan:true project.conanWithCrashReporting:%WITH_CRASH_REPORTING% project.conanWithXerces:true modules.buildconfig.enableCcache:false project.conanProfiles:valentina modules.buildconfig.enablePCH:%ENABLE_PCH% modules.windeployqt.windeployqtProgramBinPath:%WINDEPLOYQT_BIN_PATH% modules.windeployqt.compilerRuntime:%WINDEPLOYQT_COMPILER_RUNTIME% modules.windeployqt.noCompilerRuntime:%WINDEPLOYQT_NO_COMPILER_RUNTIME%
2023-02-22 15:45:53 +01:00
test_script:
- path
- if "%RUN_TESTS%" == "true" (qbs -p autotest-runner -d %APPVEYOR_BUILD_FOLDER%\build profile:qt6 config:release)
2023-02-22 15:45:53 +01:00
deploy_script:
2024-03-12 15:39:44 +01:00
- ps: |
if ($env:WITH_CRASH_REPORTING -eq "True") {
2024-03-26 14:08:47 +01:00
$qmakeOutput = & "$env:QTDIR\bin\$env:QMAKE" -query QT_VERSION
2024-03-28 10:21:41 +01:00
$majorMinorVersion = $qmakeOutput -replace '(\d+)\.(\d+).*', '$1_$2'
2024-03-12 15:39:44 +01:00
$env:CRASH_QT_VERSION = $majorMinorVersion
$env:CRASH_SHORT_SHA = git log --pretty=format:%h -n 1
}
2024-03-25 13:00:21 +01:00
- ps: scripts/install_dump_sysms.ps1
- if "%WITH_CRASH_REPORTING%" == "True" (python scripts/symupload.py %APPVEYOR_BUILD_FOLDER%\build\install-root\valentina %VALENTINA_VERSION% g%CRASH_SHORT_SHA% %CRASH_QT_VERSION% --clean)
2024-03-28 06:22:44 +01:00
- if "%DEPLOY%" == "true" (qbs build -f valentina.qbs -d %APPVEYOR_BUILD_FOLDER%\build -p ValentinaSetup --jobs %NUMBER_OF_PROCESSORS% config:release qbs.installRoot:%APPVEYOR_BUILD_FOLDER%\build\install-root\valentina profile:qt6 project.enableConan:true project.conanWithCrashReporting:%WITH_CRASH_REPORTING% project.conanWithXerces:true modules.buildconfig.enableCcache:false project.conanProfiles:valentina modules.buildconfig.enablePCH:%ENABLE_PCH% modules.windeployqt.windeployqtProgramBinPath:%WINDEPLOYQT_BIN_PATH% modules.windeployqt.compilerRuntime:%WINDEPLOYQT_COMPILER_RUNTIME% modules.windeployqt.noCompilerRuntime:%WINDEPLOYQT_NO_COMPILER_RUNTIME%)
2023-02-22 15:45:53 +01:00
- ps: scripts/appveyor-deploy.ps1
2023-08-15 15:55:44 +02:00
on_finish:
# Uncomment if need access through RDP
2023-08-15 19:28:25 +02:00
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
2023-08-15 15:55:44 +02:00
2023-02-22 15:45:53 +01:00
# Legacy
-
matrix:
only:
2024-04-22 18:58:33 +02:00
- job_group: 'Windows (make)'
2023-02-22 15:45:53 +01:00
# clone directory
clone_folder: c:\projects\valentina
# scripts that are called at very beginning, before repo cloning
init:
# Uncomment if need access through RDP
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
2023-03-06 08:42:03 +01:00
- ver
2023-02-22 15:45:53 +01:00
# Path before
- path
- set QTDIR=C:\%QT%
2024-01-24 10:22:01 +01:00
- set PATH=%QTDIR%\bin;%QTDIR%\include;C:\Tools\PsTools;C:\Program Files\Git\cmd;C:\Program Files\Git\usr\bin;C:\Program Files\Git LFS;C:\Tools\GitVersion;C:\Windows\system32;C:\Windows;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Inno Setup 6
2023-02-22 15:45:53 +01:00
- if NOT "%BUILD_SYSTEM%" == "make" echo "Using Visual Studio %VSVER%.0"
- if "%BUILD_SYSTEM%" == "make" echo "Using MinGW"
# Set VC variables for the platform
- ps: |
if ($env:COMPILER -eq "msvc") {
if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2022") {
if ($env:ARCH -eq "x64") {
cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
} else {
cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
}
} elseif ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2019") {
if ($env:ARCH -eq "x64") {
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
} else {
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
}
} elseif ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2017") {
if ($env:ARCH -eq "x64") {
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
} else {
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat`" && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
}
} elseif ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") {
if ($env:ARCH -eq "x64") {
cmd.exe /c "call `"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd`" /x64 && call `"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat`" x86_amd64 && set > %temp%\vcvars.txt"
2023-02-22 15:45:53 +01:00
} else {
cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
}
}
Get-Content "$env:temp\vcvars.txt" | Foreach-Object {
if ($_ -match "^(.*?)=(.*)$") {
Set-Content "env:\$($matches[1])" $matches[2]
2023-02-22 15:45:53 +01:00
}
}
}
- if "%BUILD_SYSTEM%" == "make" set PATH=%MINGW_PATH%;%PATH%
- if "%BUILD_SYSTEM%" == "nmake" set PATH=C:\Qt\Tools\QtCreator\bin;%PATH%
- if "%DEPLOY%" == "true" set PATH=%PYTHON%;%PYTHON%\Scripts;%PATH%
# Set paths to libraries
2023-02-23 09:29:57 +01:00
- set PATH=%APPVEYOR_BUILD_FOLDER%\build\src\libs\vpropertyexplorer\bin;%APPVEYOR_BUILD_FOLDER%\build\src\libs\qmuparser\bin;%PATH%
2023-02-22 15:45:53 +01:00
# Path after
- path
# Check that we have the expected version for Python
- if "%DEPLOY%" == "true" (python --version)
# Install the build dependencies of the project.
- if "%DEPLOY%" == "true" (python -m pip install --upgrade pip)
- if "%DEPLOY%" == "true" (python -m pip install dropbox py7zr)
2023-02-22 15:45:53 +01:00
# Trick qmake to not work through MSYS
- del /F "C:\Program Files\Git\usr\bin\sh.exe"
- del /F "C:\Program Files\Git\bin\sh.exe"
- qmake -v
before_build:
- cd %APPVEYOR_BUILD_FOLDER%
- md build
2023-02-22 15:45:53 +01:00
# to run your custom scripts instead of automatic MSBuild
build_script:
- cd build
- if "%DEPLOY%" == "true" (qmake ..\Valentina.pro -r CONFIG+=no_ccache CONFIG+=checkWarnings CONFIG+=noDebugSymbols CONFIG+=noWindowsInstaller) else (qmake ..\Valentina.pro -r CONFIG+=noDebugSymbols CONFIG+=no_ccache CONFIG+=checkWarnings)
- if not "%BUILD_SYSTEM%" == "make" (nmake -s) else (mingw32-make -j%NUMBER_OF_PROCESSORS%)
2023-02-22 15:45:53 +01:00
# to run your custom scripts instead of automatic tests
test_script:
- if "%BUILD_SYSTEM%" == "make" (mingw32-make -s check TESTARGS="-silent")
2023-02-22 15:45:53 +01:00
#---------------------------------#
# MacOS #
#---------------------------------#
-
matrix:
only:
2024-04-22 18:58:33 +02:00
- job_group: 'MacOS_14'
2023-02-22 15:45:53 +01:00
2023-02-28 13:31:36 +01:00
environment:
2023-09-22 19:35:17 +02:00
CONAN_USER_HOME: /Users/appveyor
2023-03-06 15:34:15 +01:00
HOMEBREW_NO_INSTALL_CLEANUP: 1
# Should contain the base64 of the certificate
MACOS_CERTIFICATE:
secure: 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
# Should contain the full certificate name, such as Developer ID Application: Your Name (K1234567)
MACOS_CERTIFICATE_NAME:
secure: DfLnepaG+LQMo+w1UvxfgoXI+pb4XtCZSh0rX+f9ZqANcrRNNlI9V7nBzQmNUv7BV+E+NC/s0vtrfcKBx2IEKw==
# Should contain the password you chose when exported the certificate from the Keychain Access app
MACOS_CERTIFICATE_PWD:
secure: ynsawEOq1ysFzKZDR5JMYe5KatOCYHYtnJnJDzsH+20=
# Should contain apple developer email, the same used the Apple Developer subscription
MACOS_NOTARIZATION_APPLE_ID:
secure: JC/QySMcz7ojpEHJEKaxDqTnXgM4zAet7/C6PgIL6GA=
# Should contain the app-specific password
MACOS_NOTARIZATION_PWD:
secure: 5LQu42RbJMmWXmknUs+dcJFuA/7KsqeIbeDBa1L0Qw0=
# Should contain the Team ID
MACOS_NOTARIZATION_TEAM_ID:
secure: Pl/pYbFyfpJOK1O8R94RTQ==
# Should contain a strong, randomly generated password
MACOS_CI_KEYCHAIN_PWD:
secure: B8yHPBym+BTDPK5ZCg7WlSnUCHLbcim8WqLTC6/PSNs=
2023-02-28 13:31:36 +01:00
cache:
2024-03-12 15:39:44 +01:00
- /Users/appveyor/.conan/data -> conanfile.py
2024-02-17 08:12:15 +01:00
- $HOME/brew_cache_dir
2023-02-28 13:31:36 +01:00
2023-02-22 15:45:53 +01:00
init:
2023-02-23 10:12:42 +01:00
- find /Applications -maxdepth 1 -type d -name 'Xcode*.app'
2023-02-22 15:45:53 +01:00
- sudo xcode-select -p
2023-02-24 13:32:43 +01:00
- sudo xcode-select -s /Applications/Xcode-$XCODE_VERSION.app
2023-02-23 10:28:07 +01:00
- sudo xcode-select -p
2024-03-26 10:29:51 +01:00
- xcrun --show-sdk-path -sdk macosx
# Decode the environment variable into a regular .p12 file
- echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
# We need to create a new keychain, otherwise using the certificate will prompt
# with a UI dialog asking for the certificate password, which we can't
# use in a headless CI environment
# Create the keychain with a password ($MACOS_CI_KEYCHAIN_PWD)
2023-09-14 19:36:54 +02:00
- security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" $HOME/Library/Keychains/build.keychain
# Make the custom keychain default, so xcodebuild will use it for signing
2023-09-14 19:36:54 +02:00
- security default-keychain -s $HOME/Library/Keychains/build.keychain
# Unlock the keychain
2023-09-14 19:36:54 +02:00
- security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" $HOME/Library/Keychains/build.keychain
2023-09-14 20:21:12 +02:00
- security set-keychain-settings $HOME/Library/Keychains/build.keychain
# Check if System.keychain is not cluttered
# good: 60K
# bad: 25MB
- du -h /Library/Keychains/System.keychain
# Add certificates to keychain and allow codesign to access them
# 1) Apple Worldwide Developer Relations Certification Authority
- curl https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer --output $HOME/AppleWWDRCAG3.cer --silent
2024-03-21 16:23:25 +01:00
- sudo security import $HOME/AppleWWDRCAG3.cer -k /Library/Keychains/System.keychain -T /usr/bin/codesign || true
# 2) Developer Authentication Certification Authority
- curl https://www.apple.com/certificateauthority/DeveloperIDG2CA.cer --output $HOME/DeveloperIDG2CA.cer --silent
2024-03-21 16:23:25 +01:00
- sudo security import $HOME/DeveloperIDG2CA.cer -k /Library/Keychains/System.keychain -T /usr/bin/codesign || true
# 3) Developer ID
2023-09-14 19:36:54 +02:00
- security import certificate.p12 -k $HOME/Library/Keychains/build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
# Delete the files, we no longer need them
- rm $HOME/AppleWWDRCAG3.cer
- rm $HOME/DeveloperIDG2CA.cer
- rm certificate.p12
# Set the partition list (sort of like an access control list)
2023-09-14 19:36:54 +02:00
- security set-key-partition-list -S "apple-tool:,apple:,codesign:" -s -k "$MACOS_CI_KEYCHAIN_PWD" $HOME/Library/Keychains/build.keychain
# Echo the identity, just so that we know it worked.
# This won't display anything secret.
- security find-identity -v -p codesigning
before_build:
2023-03-06 15:34:15 +01:00
- ls ${HOME}/Qt
2024-03-28 14:10:59 +01:00
- export PATH="$HOME/.local/bin:`python3 -m site --user-base`/bin:$HOME/.cargo/bin:$PATH"
2023-02-25 22:49:58 +01:00
- echo $PATH
2023-02-25 16:22:45 +01:00
- python3 --version
2023-09-14 13:48:58 +02:00
- whereis python3
- sudo ln -s -f /usr/bin/python3 /usr/local/bin/python
2023-09-14 19:30:58 +02:00
- sudo ln -s /Library/Developer/CommandLineTools/usr/bin/python3 /Library/Developer/CommandLineTools/usr/bin/python
2023-09-14 13:48:58 +02:00
- whereis python
- |-
###############################################################
# Set up macOS dependencies
sudo ln -s /usr/local /opt/local;
2024-02-16 21:53:00 +01:00
cache_tag=usr_local # this can be modified to rebuild deps
cdir=$HOME/brew_cache_dir
cache_tar=$cdir/$cache_tag.tar
cache=$cache_tar.xz
CPUS=$(sysctl -n hw.ncpu)
if [ -d $cdir ] && [ -f $cache ]; then
echo "=== Unpacking cached Homebrew $cache ==="
(
cd /
tar xf $cache
)
echo "done"
else
echo "=== Building dependencies ==="
echo "Couldn't find cache $cache"
ls -alrt "$cdir"
echo "Recording /usr/local state"
python3 ./scripts/treestate.py scan /usr/local usrlocal.json
brew update
2023-09-22 19:21:42 +02:00
brew install coreutils ccache git openssl@1.1 pkg-config qbs qt6 cmake ninja poppler xerces-c
# The build environment is now ready for use. We can complete
# the rest of the process of creating the Homebrew archive
# during the rest of the build, using idle CPU time. To minimise
# the amount of space needed for the archive, we compress with
# xz, which adds only about a minute to the non-cached build.
(
echo "=== Creating cache tarball $cache ==="
echo "Check /usr/local for updates"
python3 ./scripts/treestate.py updates usrlocal.json /usr/local | fgrep -v .git > updated_list
echo Need to record $( wc -l updated_list ) updates
mkdir -p $cdir
rm -f $cdir/*
nice tar cf $cache_tar -T updated_list
echo nice xz -9 -T$CPUS $cache_tar
nice xz -9 -T$CPUS $cache_tar
du -h $cdir
) 2>&1 | sed 's/^/CACHE: /' &
fi
- sudo python3 -m pip install --upgrade pip
- pip3 install --user --upgrade pip dropbox py7zr 'urllib3<2.0' conan==1.63.0 requests
2024-04-01 13:12:14 +02:00
- export QTDIR=$(brew --prefix qt6)
2023-09-23 11:08:20 +02:00
- export PATH="$PATH:`python3 -m site --user-base`/bin:$QTDIR/bin"
2023-08-29 18:02:43 +02:00
- echo $PATH
- python3 --version
2023-02-22 15:45:53 +01:00
- clang --version
# Annoying clang issue: clang++ does not respect -isystem flag
2023-09-26 16:39:54 +02:00
- rm /usr/local/include/xercesc || true
2023-02-22 15:45:53 +01:00
- qmake --version
- which qmake
2023-09-15 08:44:17 +02:00
- which qbs
2023-02-22 15:45:53 +01:00
- qbs --version
2023-09-22 15:11:07 +02:00
- /usr/bin/curl -LJ https://github.com/dismine/macdeployqt/archive/refs/heads/main.zip --output ${HOME}/macdeployqt-main.zip --silent
2023-09-22 10:25:00 +02:00
- unzip ${HOME}/macdeployqt-main.zip -d ${HOME}
- cmake ${HOME}/macdeployqt-main -GNinja -S ${HOME}/macdeployqt-main -B ${HOME}/macdeployqt-build-dir -DCMAKE_INSTALL_PREFIX=${HOME}/macdeployqt-install-dir -DCMAKE_BUILD_TYPE=Release
2023-09-22 10:32:47 +02:00
- cmake --build ${HOME}/macdeployqt-build-dir --target install
- cd ${APPVEYOR_BUILD_FOLDER}
build_script:
- pwd
2024-03-12 15:39:44 +01:00
- git describe --always HEAD
- conan profile new valentina
- conan profile update settings.build_type=Release valentina
- conan profile update settings.os=Macos valentina
2024-03-28 10:21:41 +01:00
- conan profile update settings.os_build=Macos valentina
2024-03-26 09:25:10 +01:00
- conan profile update settings.arch=x86_64 valentina
2024-03-28 10:21:41 +01:00
- conan profile update settings.arch_build=x86_64 valentina
2024-03-22 09:28:35 +01:00
- conan profile update settings.compiler=apple-clang valentina
2024-03-12 15:39:44 +01:00
- conan profile update settings.compiler.cppstd=17 valentina
- conan profile update settings.compiler.libcxx=libc++ valentina
2024-03-12 15:39:44 +01:00
- conan profile update settings.compiler.version=15 valentina
- qbs setup-toolchains --detect
- qbs config --list profiles
- qbs setup-qt $(brew --prefix qt6)/bin/qmake qt6
- qbs config defaultProfile qt6
- qbs config profiles.qt6.baseProfile clang
- conan install . -s os=Macos --build=missing -o with_crash_reporting=True -pr=valentina
- git fetch --tags
2024-03-28 10:21:41 +01:00
- qbs build -f valentina.qbs -d ${APPVEYOR_BUILD_FOLDER}/build --jobs $(nproc) config:release modules.buildconfig.enableUnitTests:false modules.buildconfig.enableMultiBundle:${MULTI_BUNDLE} qbs.installRoot:${APPVEYOR_BUILD_FOLDER}/build/install-root profile:qt6 project.minimumMacosVersion:${MACOS_DEPLOYMENT_TARGET} modules.buildconfig.enableCcache:true moduleProviders.qbspkgconfig.extraPaths:$(brew --prefix xerces-c)/lib/pkgconfig,$(brew --prefix qt6)/lib/pkgconfig,$(brew --prefix openssl@1.1)/lib/pkgconfig "modules.buildconfig.signingIdentity:$MACOS_CERTIFICATE_NAME" modules.macdeployqt.libpath:$(brew --prefix qt6)/lib,$(brew --prefix poppler)/lib modules.macdeployqt.macdeployqtProgramBinPath:${HOME}/macdeployqt-install-dir project.enableConan:true project.conanWithCrashReporting:true project.conanProfiles:valentina
2024-03-29 12:03:55 +01:00
- export QTDIR=$(brew --prefix qt6)
2024-03-12 15:39:44 +01:00
- export CRASH_QT_VERSION=$($QTDIR/bin/qmake -query QT_VERSION | awk -F. '{print $1 "_" $2}')
- export CRASH_SHORT_SHA=$(git log --pretty=format:%h -n 1)
2024-03-25 13:14:59 +01:00
- curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mozilla/dump_syms/releases/download/v2.3.1/dump_syms-installer.sh | sh
- python3 scripts/symupload.py ${APPVEYOR_BUILD_FOLDER}/build/install-root $VALENTINA_VERSION g$CRASH_SHORT_SHA $CRASH_QT_VERSION --multibundle=$MULTI_BUNDLE --clean
2024-03-28 10:21:41 +01:00
- qbs build -f valentina.qbs -d ${APPVEYOR_BUILD_FOLDER}/build -p 'Valentina DMG' --force-probe-execution --jobs $(nproc) config:release modules.buildconfig.enableUnitTests:false modules.buildconfig.enableMultiBundle:${MULTI_BUNDLE} qbs.installRoot:${APPVEYOR_BUILD_FOLDER}/build/install-root profile:qt6 project.minimumMacosVersion:${MACOS_DEPLOYMENT_TARGET} modules.buildconfig.enableCcache:true moduleProviders.qbspkgconfig.extraPaths:$(brew --prefix xerces-c)/lib/pkgconfig,$(brew --prefix qt6)/lib/pkgconfig,$(brew --prefix openssl@1.1)/lib/pkgconfig "modules.buildconfig.signingIdentity:$MACOS_CERTIFICATE_NAME" modules.macdeployqt.libpath:$(brew --prefix qt6)/lib,$(brew --prefix poppler)/lib modules.macdeployqt.macdeployqtProgramBinPath:${HOME}/macdeployqt-install-dir project.enableConan:true project.conanWithCrashReporting:true project.conanProfiles:valentina
# Store the notarization credentials so that we can prevent a UI password dialog
# from blocking the CI
- echo "Create keychain profile"
- xcrun notarytool store-credentials "notarytool-profile" --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD"
# Here we send the notarization request to the Apple's Notarization service, waiting for the result.
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App
# characteristics. Visit the Notarization docs for more information and strategies on how to optimize it if
# you're curious
- echo "Notarize app"
- xcrun notarytool submit "${APPVEYOR_BUILD_FOLDER}/build/install-root/share/valentina.dmg" --keychain-profile "notarytool-profile" --wait --timeout 5m || true
# Finally, we need to "attach the staple" to our executable, which will allow our app to be
# validated by macOS even when an internet connection is not available.
- echo "Attach staple"
- xcrun stapler staple ${APPVEYOR_BUILD_FOLDER}/build/install-root/share/valentina.dmg || true
deploy_script:
- CIRRUS_WORKING_DIR=${APPVEYOR_BUILD_FOLDER} CIRRUS_CHANGE_IN_REPO=${APPVEYOR_REPO_COMMIT} CIRRUS_BRANCH=${APPVEYOR_REPO_BRANCH} ${APPVEYOR_BUILD_FOLDER}/scripts/cirrus-deploy.sh
-
matrix:
only:
2024-04-22 18:58:33 +02:00
- job_group: 'MacOS_12 (qbs)'
environment:
2023-09-22 19:35:17 +02:00
CONAN_USER_HOME: /Users/appveyor
HOMEBREW_NO_INSTALL_CLEANUP: 1
# Should contain the base64 of the certificate
MACOS_CERTIFICATE:
secure: 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
# Should contain the full certificate name, such as Developer ID Application: Your Name (K1234567)
MACOS_CERTIFICATE_NAME:
secure: DfLnepaG+LQMo+w1UvxfgoXI+pb4XtCZSh0rX+f9ZqANcrRNNlI9V7nBzQmNUv7BV+E+NC/s0vtrfcKBx2IEKw==
# Should contain the password you chose when exported the certificate from the Keychain Access app
MACOS_CERTIFICATE_PWD:
secure: ynsawEOq1ysFzKZDR5JMYe5KatOCYHYtnJnJDzsH+20=
# Should contain apple developer email, the same used the Apple Developer subscription
MACOS_NOTARIZATION_APPLE_ID:
secure: JC/QySMcz7ojpEHJEKaxDqTnXgM4zAet7/C6PgIL6GA=
# Should contain the app-specific password
MACOS_NOTARIZATION_PWD:
secure: 5LQu42RbJMmWXmknUs+dcJFuA/7KsqeIbeDBa1L0Qw0=
# Should contain the Team ID
MACOS_NOTARIZATION_TEAM_ID:
secure: Pl/pYbFyfpJOK1O8R94RTQ==
# Should contain a strong, randomly generated password
MACOS_CI_KEYCHAIN_PWD:
secure: B8yHPBym+BTDPK5ZCg7WlSnUCHLbcim8WqLTC6/PSNs=
cache:
2024-03-12 15:39:44 +01:00
- /Users/appveyor/.conan/data -> conanfile.py
2024-02-17 08:12:15 +01:00
- $HOME/brew_cache_dir
init:
- find /Applications -maxdepth 1 -type d -name 'Xcode*.app'
- sudo xcode-select -p
- sudo xcode-select -s /Applications/Xcode-$XCODE_VERSION.app
- sudo xcode-select -p
2024-03-26 10:29:51 +01:00
- xcrun --show-sdk-path -sdk macosx
# Decode the environment variable into a regular .p12 file
- echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12
# We need to create a new keychain, otherwise using the certificate will prompt
# with a UI dialog asking for the certificate password, which we can't
# use in a headless CI environment
# Create the keychain with a password ($MACOS_CI_KEYCHAIN_PWD)
2023-09-14 19:36:54 +02:00
- security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" $HOME/Library/Keychains/build.keychain
# Make the custom keychain default, so xcodebuild will use it for signing
2023-09-14 19:36:54 +02:00
- security default-keychain -s $HOME/Library/Keychains/build.keychain
# Unlock the keychain
2023-09-14 19:36:54 +02:00
- security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" $HOME/Library/Keychains/build.keychain
2023-09-14 20:21:12 +02:00
- security set-keychain-settings $HOME/Library/Keychains/build.keychain
# Check if System.keychain is not cluttered
# good: 60K
# bad: 25MB
- du -h /Library/Keychains/System.keychain
# Add certificates to keychain and allow codesign to access them
# 1) Apple Worldwide Developer Relations Certification Authority
- curl https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer --output $HOME/AppleWWDRCAG3.cer --silent
2024-03-21 16:23:25 +01:00
- sudo security import $HOME/AppleWWDRCAG3.cer -k /Library/Keychains/System.keychain -T /usr/bin/codesign || true
# 2) Developer Authentication Certification Authority
- curl https://www.apple.com/certificateauthority/DeveloperIDG2CA.cer --output $HOME/DeveloperIDG2CA.cer --silent
2024-03-21 16:23:25 +01:00
- sudo security import $HOME/DeveloperIDG2CA.cer -k /Library/Keychains/System.keychain -T /usr/bin/codesign || true
# 3) Developer ID
2023-09-14 19:36:54 +02:00
- security import certificate.p12 -k $HOME/Library/Keychains/build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
# Delete the files, we no longer need them
- rm $HOME/AppleWWDRCAG3.cer
- rm $HOME/DeveloperIDG2CA.cer
- rm certificate.p12
# Set the partition list (sort of like an access control list)
2023-09-14 19:36:54 +02:00
- security set-key-partition-list -S "apple-tool:,apple:,codesign:" -s -k "$MACOS_CI_KEYCHAIN_PWD" $HOME/Library/Keychains/build.keychain
# Echo the identity, just so that we know it worked.
# This won't display anything secret.
- security find-identity -v -p codesigning
2023-02-22 15:45:53 +01:00
before_build:
- ls ${HOME}/Qt
- export QTDIR="${HOME}/${QT}"
2024-03-28 14:10:59 +01:00
- export PATH="$QTDIR/bin:$HOME/.local/bin:`python3 -m site --user-base`/bin:${HOME}/Qt/Qt Creator.app/Contents/MacOS:$HOME/.cargo/bin:$PATH"
- echo $PATH
- python3 --version
2023-09-14 13:48:58 +02:00
- whereis python3
- sudo ln -s -f /usr/bin/python3 /usr/local/bin/python
2023-09-14 19:30:58 +02:00
- sudo ln -s /Library/Developer/CommandLineTools/usr/bin/python3 /Library/Developer/CommandLineTools/usr/bin/python
2023-09-14 13:48:58 +02:00
- whereis python
- |-
###############################################################
# Set up macOS dependencies
sudo ln -s /usr/local /opt/local;
2024-02-16 21:53:00 +01:00
cache_tag=usr_local # this can be modified to rebuild deps
cdir=$HOME/brew_cache_dir
cache_tar=$cdir/$cache_tag.tar
cache=$cache_tar.xz
CPUS=$(sysctl -n hw.ncpu)
if [ -d $cdir ] && [ -f $cache ]; then
echo "=== Unpacking cached Homebrew $cache ==="
(
cd /
tar xf $cache
)
echo "done"
else
echo "=== Building dependencies ==="
echo "Couldn't find cache $cache"
ls -alrt "$cdir"
echo "Recording /usr/local state"
python3 ./scripts/treestate.py scan /usr/local usrlocal.json
brew update
2024-02-21 18:29:28 +01:00
brew install coreutils ccache git pkg-config qbs qt6 cmake ninja poppler
# The build environment is now ready for use. We can complete
# the rest of the process of creating the Homebrew archive
# during the rest of the build, using idle CPU time. To minimise
# the amount of space needed for the archive, we compress with
# xz, which adds only about a minute to the non-cached build.
(
echo "=== Creating cache tarball $cache ==="
echo "Check /usr/local for updates"
python3 ./scripts/treestate.py updates usrlocal.json /usr/local | fgrep -v .git > updated_list
echo Need to record $( wc -l updated_list ) updates
mkdir -p $cdir
rm -f $cdir/*
nice tar cf $cache_tar -T updated_list
echo nice xz -9 -T$CPUS $cache_tar
nice xz -9 -T$CPUS $cache_tar
du -h $cdir
) 2>&1 | sed 's/^/CACHE: /' &
fi
- sudo python3 -m pip install --upgrade pip
- pip3 install --user --upgrade pip dropbox py7zr 'urllib3<2.0' conan==1.63.0 requests
2023-09-26 17:07:15 +02:00
- export PATH="`brew --prefix qbs`/bin:$PATH"
- echo $PATH
- clang --version
- qmake --version
- which qmake
- qbs --version
- /usr/bin/curl -LJ https://github.com/dismine/macdeployqt/archive/refs/heads/main.zip --output ${HOME}/macdeployqt-main.zip --silent
- unzip ${HOME}/macdeployqt-main.zip -d ${HOME}
2023-09-26 15:09:20 +02:00
- cmake ${HOME}/macdeployqt-main -S ${HOME}/macdeployqt-main -B ${HOME}/macdeployqt-build-dir -DCMAKE_INSTALL_PREFIX=${HOME}/macdeployqt-install-dir -DCMAKE_BUILD_TYPE=Release
- cmake --build ${HOME}/macdeployqt-build-dir --target install
2023-09-26 16:14:07 +02:00
# Clean /usr/local/include from Qt6
- find /usr/local/include -type l -name 'Qt*' > /tmp/qt_symlinks.txt
- cat /tmp/qt_symlinks.txt
- xargs -I {} unlink {} < /tmp/qt_symlinks.txt
2023-02-22 15:45:53 +01:00
- cd ${APPVEYOR_BUILD_FOLDER}
build_script:
- pwd
2024-03-12 15:39:44 +01:00
- conan profile new valentina
- conan profile update settings.build_type=Release valentina
- conan profile update settings.os=Macos valentina
2024-03-28 10:21:41 +01:00
- conan profile update settings.os_build=Macos valentina
2024-03-26 09:25:10 +01:00
- conan profile update settings.arch=x86_64 valentina
2024-03-28 10:21:41 +01:00
- conan profile update settings.arch_build=x86_64 valentina
2024-03-22 09:28:35 +01:00
- conan profile update settings.compiler=apple-clang valentina
2024-03-12 15:39:44 +01:00
- conan profile update settings.compiler.cppstd=17 valentina
- conan profile update settings.compiler.libcxx=libc++ valentina
2024-03-12 15:39:44 +01:00
- conan profile update settings.compiler.version=14 valentina
2023-02-22 15:45:53 +01:00
- qbs setup-toolchains --detect
- qbs config --list profiles
- qbs setup-qt ${QTDIR}/bin/qmake qt5
- qbs config defaultProfile qt5
- qbs config profiles.qt5.baseProfile clang
- conan install . -s os=Macos --build=missing -o with_crash_reporting=True -pr=valentina
- git fetch --tags
2024-03-28 10:21:41 +01:00
- qbs build -f valentina.qbs -d ${APPVEYOR_BUILD_FOLDER}/build --jobs $(nproc) config:release modules.buildconfig.enableUnitTests:false modules.buildconfig.enableMultiBundle:${MULTI_BUNDLE} qbs.installRoot:${APPVEYOR_BUILD_FOLDER}/build/install-root profile:qt5 project.minimumMacosVersion:${MACOS_DEPLOYMENT_TARGET} modules.buildconfig.enableCcache:true "modules.buildconfig.signingIdentity:$MACOS_CERTIFICATE_NAME" modules.macdeployqt.libpath:${QTDIR}/lib modules.macdeployqt.pluginspath:${QTDIR}/plugins modules.macdeployqt.macdeployqtProgramBinPath:${HOME}/macdeployqt-install-dir project.enableConan:true project.conanWithCrashReporting:true project.conanProfiles:valentina
2024-03-12 15:39:44 +01:00
- export CRASH_QT_VERSION=$($QTDIR/bin/qmake -query QT_VERSION | awk -F. '{print $1 "_" $2}')
- export CRASH_SHORT_SHA=$(git log --pretty=format:%h -n 1)
2024-03-25 13:14:59 +01:00
- curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mozilla/dump_syms/releases/download/v2.3.1/dump_syms-installer.sh | sh
- python3 scripts/symupload.py ${APPVEYOR_BUILD_FOLDER}/build/install-root $VALENTINA_VERSION g$CRASH_SHORT_SHA $CRASH_QT_VERSION --multibundle=$MULTI_BUNDLE --clean
2024-03-28 10:21:41 +01:00
- qbs build -f valentina.qbs -d ${APPVEYOR_BUILD_FOLDER}/build -p 'Valentina DMG' --force-probe-execution --jobs $(nproc) config:release modules.buildconfig.enableUnitTests:false modules.buildconfig.enableMultiBundle:${MULTI_BUNDLE} qbs.installRoot:${APPVEYOR_BUILD_FOLDER}/build/install-root profile:qt5 project.minimumMacosVersion:${MACOS_DEPLOYMENT_TARGET} modules.buildconfig.enableCcache:true "modules.buildconfig.signingIdentity:$MACOS_CERTIFICATE_NAME" modules.macdeployqt.libpath:${QTDIR}/lib modules.macdeployqt.pluginspath:${QTDIR}/plugins modules.macdeployqt.macdeployqtProgramBinPath:${HOME}/macdeployqt-install-dir project.enableConan:true project.conanWithCrashReporting:true project.conanProfiles:valentina
# Store the notarization credentials so that we can prevent a UI password dialog
# from blocking the CI
- echo "Create keychain profile"
- xcrun notarytool store-credentials "notarytool-profile" --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD"
# Here we send the notarization request to the Apple's Notarization service, waiting for the result.
# This typically takes a few seconds inside a CI environment, but it might take more depending on the App
# characteristics. Visit the Notarization docs for more information and strategies on how to optimize it if
# you're curious
- echo "Notarize app"
- xcrun notarytool submit "${APPVEYOR_BUILD_FOLDER}/build/install-root/share/valentina.dmg" --keychain-profile "notarytool-profile" --wait --timeout 5m || true
# Finally, we need to "attach the staple" to our executable, which will allow our app to be
# validated by macOS even when an internet connection is not available.
- echo "Attach staple"
- xcrun stapler staple ${APPVEYOR_BUILD_FOLDER}/build/install-root/share/valentina.dmg || true
2023-02-22 15:45:53 +01:00
deploy_script:
- CIRRUS_WORKING_DIR=${APPVEYOR_BUILD_FOLDER} CIRRUS_CHANGE_IN_REPO=${APPVEYOR_REPO_COMMIT} CIRRUS_BRANCH=${APPVEYOR_REPO_BRANCH} ${APPVEYOR_BUILD_FOLDER}/scripts/cirrus-deploy.sh
2023-02-22 15:45:53 +01:00
-
matrix:
only:
2024-04-22 18:58:33 +02:00
- job_group: 'MacOS (make)'
2023-02-22 15:45:53 +01:00
init:
2023-02-24 19:54:09 +01:00
- find /Applications -maxdepth 1 -type d -name 'Xcode*.app'
2023-02-22 15:45:53 +01:00
- sudo xcode-select -p
2023-02-24 13:32:43 +01:00
- sudo xcode-select -s /Applications/Xcode-$XCODE_VERSION.app
2023-02-23 10:28:07 +01:00
- sudo xcode-select -p
before_build:
- export QTDIR="${HOME}/${QT}"
- export PATH="$QTDIR/bin:$PATH"
- echo $PATH
2023-02-22 15:45:53 +01:00
- clang --version
2023-02-25 10:59:12 +01:00
- qmake --version
- which qmake
2023-02-22 15:45:53 +01:00
- cd ${APPVEYOR_BUILD_FOLDER}
- mkdir build
- cd build
build_script:
- pwd
2023-02-25 10:59:12 +01:00
- qmake ../Valentina.pro -r CONFIG+=noDebugSymbols CONFIG+=checkWarnings CONFIG+=noTests CONFIG+=no_ccache
2023-02-22 15:45:53 +01:00
- make -j$(nproc)
#---------------------------------#
# notifications #
#---------------------------------#
notifications:
# Email
- provider: Email
to:
- dismine@gmail.com
on_build_success: false
on_build_failure: true
on_build_status_changed: true