yacreader/azure-pipelines-windows-template-qt6-arm64.yml
2025-05-04 13:20:01 +02:00

86 lines
4.3 KiB
YAML

parameters:
name: Windows_ARM64
architecture: 'arm64'
qt_version: '6.8.1'
qt_spec: 'msvc2022_arm64'
qt_spec_native: 'msvc2022_64' # windeployqt.exe and other tools are here
qt_aqt_spec: 'win64_msvc2022_arm64_cross_compiled'
vc_redist_url: 'https://aka.ms/vs/17/release/vc_redist.arm64.exe'
vc_redist_file_name: 'vc_redist.arm64.exe'
vc_vars: 'vcvarsall.bat'
jobs:
- job: ${{ parameters.name }}
timeoutInMinutes: 90
dependsOn: CodeFormatValidation
variables:
- ${{ if and(eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/luisangelsm/'), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))) }}:
- group: windows-codesign
pool:
vmImage: 'windows-2022'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.10'
architecture: 'x64'
- script: |
pip install aqtinstall
mkdir C:\Qt
python -m aqt install-qt windows desktop ${{ parameters.qt_version }} win64_msvc2022_64 -O c:\Qt -m qt5compat qtmultimedia qtimageformats qtshadertools
python -m aqt install-qt windows desktop ${{ parameters.qt_version }} ${{ parameters.qt_aqt_spec }} -O c:\Qt -m qt5compat qtmultimedia qtimageformats qtshadertools
dir C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin
choco install -y wget
choco install innosetup
mkdir $(Build.SourcesDirectory)\compressed_archive
wget "https://github.com/YACReader/yacreader-7z-deps/blob/main/7z2301-src.7z?raw=true" -O $(Build.SourcesDirectory)\compressed_archive\7z2301-src.7z
7z x $(Build.SourcesDirectory)\compressed_archive\7z2301-src.7z -o$(Build.SourcesDirectory)\compressed_archive\lib7zip
wget "${{ parameters.vc_redist_url }}" -O $(Build.SourcesDirectory)\${{ parameters.vc_redist_file_name }}
displayName: 'Install dependencies'
- script: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\${{ parameters.vc_vars }}" amd64_arm64
set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin;%PATH%
set DEFINES_VAR=DEFINES+="BUILD_NUMBER=\\\\\\\"$(Build.BuildNumber)\\\\\\\""
qmake CONFIG+="7zip" %DEFINES_VAR%
nmake
displayName: 'Prepare Build'
- script: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\${{ parameters.vc_vars }}" amd64_arm64
set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin;%PATH%
nmake
displayName: 'Build'
- ${{ if and(eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/luisangelsm/'), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))) }}:
- task: DownloadSecureFile@1
name: pfxFile
displayName: 'Get the pfx file certificate'
inputs:
secureFile: 'certificate.pfx'
- ${{ if and(eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/luisangelsm/'), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))) }}:
- script: |
set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec_native }}\bin;%PATH%
set QTPATHS_ARM64=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin\qtpaths.bat
cd $(Build.SourcesDirectory)\ci\win
.\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 %QTPATHS_ARM64% $(pfxFile.secureFilePath) %PASSWORD%
env:
PASSWORD: $(pfxPassword)
displayName: 'Create installer'
- ${{ else }}:
- script: |
set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec_native }}\bin;%PATH%
set QTPATHS_ARM64=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin\qtpaths.bat
cd $(Build.SourcesDirectory)\ci\win
.\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 %QTPATHS_ARM64%
displayName: 'Create installer'
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)\ci\win\Output\
contents: '*'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishPipelineArtifact@1
inputs:
path: $(Build.ArtifactStagingDirectory)
artifactName: Windows ${{ parameters.architecture }} $(Build.BuildNumber) 7z Qt6 Installer