@@ -87,7 +87,7 @@ stages:
8787 imageName : ' windows-2025'
8888 architecture : ' x64'
8989 compiler : ' MSVC'
90- qt_version : ' 6.8.3 '
90+ qt_version : ' 6.10.2 '
9191 qt_version_major : ' 6'
9292 qt_modules : ' qtserialport qtmultimedia'
9393 cmake_preset : ' RelWithDebInfo'
@@ -124,11 +124,17 @@ stages:
124124 Write-Host "=== Running windeployqt ==="
125125 $BUILD_DIR = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)"
126126 $APP_EXE = "$BUILD_DIR/SerialPrograms.exe"
127- $BUILD_CACHE = "$BUILD_DIR/cache-build"
127+ $BUILD_CACHE = "$BUILD_DIR/cache-build/Binaries64 "
128128 $SYMBOLS_CACHE = "$BUILD_DIR/cache-symbols"
129129 New-Item -ItemType Directory -Force -Path $BUILD_CACHE | Out-Null
130130 & "C:/Qt/$(qt_version)/msvc2022_64/bin/windeployqt.exe" --dir "$BUILD_CACHE" --release "$APP_EXE"
131131 New-Item -ItemType Directory -Force -Path $SYMBOLS_CACHE | Out-Null
132+
133+ Write-Host "=== Excluding unnecessary files from deployment ==="
134+ Remove-Item -Path "$BUILD_CACHE/opencv_world4120d.dll" -ErrorAction SilentlyContinue
135+ Remove-Item -Path "$BUILD_CACHE/translations" -Recurse -Force -ErrorAction SilentlyContinue
136+ Remove-Item -Path "$BUILD_CACHE/generic" -Recurse -Force -ErrorAction SilentlyContinue
137+
132138 Write-Host "=== windeployqt complete ==="
133139 displayName: 'Deploy app'
134140 condition: succeeded()
@@ -137,28 +143,65 @@ stages:
137143 echo "=== Copying resources==="
138144 robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/Packages/Resources $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Resources /s
139145 robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/Packages/Firmware $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Firmware /s
140- robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/ *.dll
141- robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/ SerialPrograms.exe
146+ robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Binaries64 *.dll
147+ robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Binaries64 SerialPrograms.exe
142148 robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-symbols/ SerialPrograms.pdb
143149 Write-Host "Robocopy exited with exit code:" $LASTEXITCODE
144150 if ($LASTEXITCODE -eq 1) { exit 0 } else { exit 1 }
145151 displayName: 'Copy resources'
146152 condition: succeeded()
147153
154+ - powershell : |
155+ $BUILD_DIR = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)"
156+ $BUILD_CACHE = "$BUILD_DIR/cache-build"
157+
158+ $cmdContent = @'
159+ cd %~dp0
160+
161+ if not exist Binaries64\ (
162+ echo.
163+ echo Please unzip the folder before you can use it.
164+ echo.
165+ pause
166+ exit
167+ )
168+
169+ if not exist Binaries64\SerialPrograms.exe (
170+ echo.
171+ echo Binaries\SerialPrograms.exe not found. Did your anti-virus delete it?
172+ echo.
173+ pause
174+ exit
175+ )
176+
177+ start "" Binaries64\SerialPrograms.exe
178+
179+ '@
180+
181+ Set-Content -Path "$BUILD_CACHE/SerialPrograms-Windows.cmd" -Value $cmdContent -Encoding UTF8
182+ Write-Host "=== Created SerialPrograms-Windows.cmd launcher ==="
183+ displayName: 'Create launcher script'
184+ condition: succeeded()
185+
148186 - powershell : |
149187 $root = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)"
188+ $version = "${{ parameters.versionMajor }}.${{ parameters.versionMinor }}.${{ parameters.versionPatch }}"
189+ $folderName = "SerialPrograms-$version-Windows-x64"
150190 $name = "SerialPrograms-Windows-$(compiler)-$(architecture)"
151191
152192 $cacheArtifactsDir = Join-Path $root "cache-artifacts"
153193 $artifactSubdir = Join-Path $cacheArtifactsDir $name
154194 New-Item -ItemType Directory -Force -Path $artifactSubdir | Out-Null
155195
156196 $temp = Join-Path $root "temp-archive"
157- New-Item -ItemType Directory -Force -Path $temp | Out-Null
158- Copy-Item "$root/cache-build/*" $temp -Recurse -Force
197+ $tempFolder = Join-Path $temp $folderName
198+ New-Item -ItemType Directory -Force -Path $tempFolder | Out-Null
199+ Copy-Item "$root/cache-build/*" $tempFolder -Recurse -Force
159200
160- Compress-Archive -Path $temp/* -DestinationPath "$artifactSubdir/$name.zip"
201+ Compress-Archive -Path $tempFolder -DestinationPath "$artifactSubdir/$name.zip"
161202 Remove-Item $temp -Recurse -Force
203+
204+ Write-Host "=== Created archive with enclosing folder: $folderName ==="
162205 displayName: 'Archive Windows build artifact'
163206 condition: succeeded()
164207
@@ -206,7 +249,7 @@ stages:
206249 imageName : ' ubuntu-24.04'
207250 architecture : ' x64'
208251 compiler : ' GCC'
209- qt_version : ' 6.10.0 '
252+ qt_version : ' 6.10.2 '
210253 qt_version_major : ' 6'
211254 qt_modules : ' qtserialport qtmultimedia'
212255 cmake_preset : ' RelWithDebInfo'
@@ -312,9 +355,14 @@ stages:
312355 rm appimagetool-x86_64.AppImage
313356
314357 echo "=== Archive Linux AppImage ==="
358+ VERSION="${{ parameters.versionMajor }}.${{ parameters.versionMinor }}.${{ parameters.versionPatch }}"
359+ FOLDER_NAME="SerialPrograms-$VERSION-Ubuntu-x64"
360+ mkdir -p "$FOLDER_NAME"
315361 chmod +x "SerialPrograms-x86_64.AppImage"
316- tar -zcvf $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).tar.gz SerialPrograms-x86_64.AppImage
317- echo "=== AppImage build complete ==="
362+ mv "SerialPrograms-x86_64.AppImage" "$FOLDER_NAME/"
363+ tar -zcvf $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).tar.gz "$FOLDER_NAME"
364+
365+ echo "=== AppImage build complete with enclosing folder: $FOLDER_NAME ==="
318366 displayName: 'Deploy AppImage'
319367 condition: succeeded()
320368
@@ -352,11 +400,11 @@ stages:
352400 imageName : macos-26
353401 architecture : arm64
354402 compiler : Clang
355- qt_version : ' 6.9.3 '
403+ qt_version : ' 6.10.2 '
356404 qt_version_major : ' 6'
357405 qt_modules : ' qtserialport qtmultimedia'
358406 cmake_preset : RelWithDebInfo
359- macos_path : ' /opt/Qt/6.9.3 /macos/lib/cmake:/opt/Qt/6.9.3 /macos/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew:$PATH'
407+ macos_path : ' /opt/Qt/6.10.2 /macos/lib/cmake:/opt/Qt/6.10.2 /macos/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew:$PATH'
360408 cmake_version_params : ' -DVERSION_MAJOR=${{ parameters.versionMajor }} -DVERSION_MINOR=${{ parameters.versionMinor }} -DVERSION_PATCH=${{ parameters.versionPatch }} -DIS_BETA=${{ lower(eq(parameters.buildType, '' PrivateBeta'' )) }}'
361409 cmake_additional_param : ' -DPACKAGE_BUILD=true -DUNIX_LINK_TESSERACT:BOOL=true -DIS_AZURE_BUILD=TRUE'
362410 condition : or(eq('${{ parameters.targetOS }}', 'MacOS'), eq('${{ parameters.targetOS }}', 'All'))
@@ -370,11 +418,11 @@ stages:
370418 imageName : macos-15
371419 architecture : x64
372420 compiler : Clang
373- qt_version : ' 6.9.3 '
421+ qt_version : ' 6.10.2 '
374422 qt_version_major : ' 6'
375423 qt_modules : ' qtserialport qtmultimedia'
376424 cmake_preset : RelWithDebInfo
377- macos_path : ' /usr/local/Qt/6.9.3 /macos/lib/cmake:/usr/local/Qt/6.9.3 /macos/bin:/usr/local/bin:/usr/local/sbin:/usr/local:$PATH'
425+ macos_path : ' /usr/local/Qt/6.10.2 /macos/lib/cmake:/usr/local/Qt/6.10.2 /macos/bin:/usr/local/bin:/usr/local/sbin:/usr/local:$PATH'
378426 cmake_version_params : ' -DVERSION_MAJOR=${{ parameters.versionMajor }} -DVERSION_MINOR=${{ parameters.versionMinor }} -DVERSION_PATCH=${{ parameters.versionPatch }} -DIS_BETA=${{ lower(eq(parameters.buildType, '' PrivateBeta'' )) }}'
379427 cmake_additional_param : ' -DPACKAGE_BUILD=true -DUNIX_LINK_TESSERACT:BOOL=true -DIS_AZURE_BUILD=TRUE'
380428 condition : or(eq('${{ parameters.targetOS }}', 'MacOS'), eq('${{ parameters.targetOS }}', 'All'))
@@ -394,7 +442,7 @@ stages:
394442 architecture : arm64
395443 compiler : Clang
396444 cmake_preset : RelWithDebInfo
397- macos_path : ' /opt/Qt/6.9.3 /macos/lib/cmake:/opt/Qt/6.9.3 /macos/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew:$PATH'
445+ macos_path : ' /opt/Qt/6.10.2 /macos/lib/cmake:/opt/Qt/6.10.2 /macos/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew:$PATH'
398446 openssl_pkcs_args : ' -legacy'
399447 condition : and(succeeded('MacOS_Build_ARM64'), or(eq('${{ parameters.targetOS }}', 'MacOS'), eq('${{ parameters.targetOS }}', 'All')))
400448
@@ -409,7 +457,7 @@ stages:
409457 architecture : x64
410458 compiler : Clang
411459 cmake_preset : RelWithDebInfo
412- macos_path : ' /usr/local/Qt/6.9.3 /macos/lib/cmake:/usr/local/Qt/6.9.3 /macos/bin:/usr/local/bin:/usr/local/sbin:/usr/local:$PATH'
460+ macos_path : ' /usr/local/Qt/6.10.2 /macos/lib/cmake:/usr/local/Qt/6.10.2 /macos/bin:/usr/local/bin:/usr/local/sbin:/usr/local:$PATH'
413461 openssl_pkcs_args : ' -legacy'
414462 condition : and(succeeded('MacOS_Build_x64'), or(eq('${{ parameters.targetOS }}', 'MacOS'), eq('${{ parameters.targetOS }}', 'All')))
415463
0 commit comments