trigger: tags: include: - '*' branches: include: - '*' jobs: - job: WinBuild displayName: Windows Build pool: vmImage: 'vs2017-win2016' strategy: matrix: Debug: CI_ENV_BUILD_TYPE: Debug Release with Release Installer: CI_ENV_BUILD_TYPE: Release steps: # Gather Dependencies - task: PowerShell@2 displayName: Download Bonjour SDK-like inputs: filePath: azure-pipelines/download_install_bonjour_sdk_like.ps1 - task: UsePythonVersion@0 displayName: Selecting Python Installer for QLI Installer inputs: versionSpec: '3.7' - task: PowerShell@2 displayName: Installing QT condition: ne(variables['CacheRestored'], 'true') inputs: filePath: azure-pipelines/download_install_qt.ps1 # Build time! - powershell: Copy-Item azure-pipelines\build_env_tmpl.bat build_env.bat displayName: Layering Azure Pipeline's build_env.bat - script: | call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\Tools\\vsdevcmd" -arch=x64 && clean_build.bat displayName: Clean Build - task: ArchiveFiles@2 displayName: Archive Completed Build Directory inputs: rootFolderOrFile: build\bin\$(CI_ENV_BUILD_TYPE)\ includeRootFolder: true archiveFile: $(Build.ArtifactStagingDirectory)\$(CI_ENV_BUILD_TYPE).zip - task: PublishBuildArtifacts@1 displayName: Publish Completed Build Directory Archive Build Artifact inputs: pathtoPublish: $(Build.ArtifactStagingDirectory)\$(CI_ENV_BUILD_TYPE).zip artifactName: Windows $(CI_ENV_BUILD_TYPE) - script: choco install innosetup --version 5.6.1.20190126 --allow-downgrade displayName: Ensure desired version of Inno Setup is installed. condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release') - script: build_installer.bat displayName: Build Installer condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release') - task: PublishBuildArtifacts@1 displayName: Publish Release Installer condition: eq(variables['CI_ENV_BUILD_TYPE'], 'Release') inputs: pathtoPublish: build\installer-inno\bin artifactName: Windows Release Installer - job: LinuxBuild strategy: matrix: ubuntu-18.04: imageName: 'ubuntu-18.04' ubuntu-20.04: imageName: 'ubuntu-20.04' displayName: Linux Build pool: vmImage: $(imageName) steps: - script: sudo apt-get update -y - script: sudo apt-get install -y libxtst-dev qtdeclarative5-dev libavahi-compat-libdnssd-dev libcurl4-openssl-dev displayName: Install Dependencies - script: sh -x ./clean_build.sh displayName: Clean Build - job: MacBuild displayName: macOS builds strategy: matrix: big-sur-Debug: imageName: "macOS-11" B_BUILD_TYPE: Debug BARRIER_VERSION_STAGE: Debug catalina-Debug: imageName: "macOS-10.15" B_BUILD_TYPE: Debug BARRIER_VERSION_STAGE: Debug mojave-Debug: imageName: "macOS-10.14" B_BUILD_TYPE: Debug BARRIER_VERSION_STAGE: Debug big-sur-Release: imageName: "macOS-11" B_BUILD_TYPE: Release BARRIER_VERSION_STAGE: Release catalina-Release: imageName: "macOS-10.15" B_BUILD_TYPE: Release BARRIER_VERSION_STAGE: Release mojave-Release: imageName: "macOS-10.14" B_BUILD_TYPE: Release BARRIER_VERSION_STAGE: Release pool: vmImage: $(imageName) variables: VERBOSE: 1 TERM: xterm-256color steps: - script: rm -rf /usr/local/opt/openssl displayName: Remove incompatible OpenSSL 1.0.2t from macOS-10.14 vmImage - script: brew reinstall openssl displayName: Installed newer OpenSSL 1.1.x - script: brew install pkg-config qt5 displayName: Install Qt5 and pkg-config prereqs - script: sh -x ./clean_build.sh displayName: Clean Build - task: PublishBuildArtifacts@1 displayName: Publish Release DMG if on Big Sur agent condition: and(eq(variables['B_BUILD_TYPE'], 'Release'), eq(variables['imageName'], 'macOS-11')) inputs: pathtoPublish: build/bundle artifactName: Release DMG for macOS - no M1 support yet