Skip to content

Commit 3cdd426

Browse files
authored
Merge branch 'PokemonAutomation:main' into main
2 parents 61a0ab4 + c553e33 commit 3cdd426

33 files changed

Lines changed: 391 additions & 116 deletions

.azure-pipelines/azure-pipelines.yml

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -157,24 +157,35 @@ stages:
157157
& "C:/Qt/$(qt_version)/msvc2022_64/bin/windeployqt.exe" --dir "$BUILD_CACHE" --release "$APP_EXE"
158158
New-Item -ItemType Directory -Force -Path $SYMBOLS_CACHE | Out-Null
159159
160-
Write-Host "=== Excluding unnecessary files from deployment ==="
161-
Remove-Item -Path "$BUILD_CACHE/opencv_world4120d.dll" -ErrorAction SilentlyContinue
162-
Remove-Item -Path "$BUILD_CACHE/translations" -Recurse -Force -ErrorAction SilentlyContinue
163-
Remove-Item -Path "$BUILD_CACHE/generic" -Recurse -Force -ErrorAction SilentlyContinue
164-
165160
Write-Host "=== windeployqt complete ==="
166161
displayName: 'Deploy app'
167162
condition: succeeded()
168163
169164
- powershell: |
170165
echo "=== Copying resources==="
171-
robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/Packages/Resources $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Resources /s
172-
robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/Packages/Firmware $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Firmware /s
173-
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
174-
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
175-
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
176-
Write-Host "Robocopy exited with exit code:" $LASTEXITCODE
177-
if ($LASTEXITCODE -eq 1) { exit 0 } else { exit 1 }
166+
$PACKAGES_DIR = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/Packages"
167+
$BUILD_DIR = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)"
168+
$BINARIES_DIR = "$BUILD_DIR/cache-build/Binaries64"
169+
170+
function Invoke-Robocopy {
171+
robocopy @args
172+
if ($LASTEXITCODE -ge 8) {
173+
throw "Robocopy failed with exit code: $LASTEXITCODE"
174+
}
175+
}
176+
177+
Invoke-Robocopy $PACKAGES_DIR/Resources $BUILD_DIR/cache-build/Resources /s
178+
Invoke-Robocopy $PACKAGES_DIR/Firmware $BUILD_DIR/cache-build/Firmware /s
179+
Invoke-Robocopy $BUILD_DIR $BINARIES_DIR *.dll
180+
Invoke-Robocopy $BUILD_DIR $BINARIES_DIR SerialPrograms.exe
181+
Invoke-Robocopy $BUILD_DIR $BUILD_DIR/cache-symbols/ SerialPrograms.pdb
182+
183+
Write-Host "=== Excluding unnecessary files from deployment ==="
184+
Remove-Item -Path "$BINARIES_DIR/opencv_world4120d.dll" -ErrorAction SilentlyContinue
185+
Remove-Item -Path "$BINARIES_DIR/translations" -Recurse -Force -ErrorAction SilentlyContinue
186+
Remove-Item -Path "$BINARIES_DIR/generic" -Recurse -Force -ErrorAction SilentlyContinue
187+
188+
exit 0
178189
displayName: 'Copy resources'
179190
condition: succeeded()
180191
@@ -213,30 +224,34 @@ stages:
213224
- powershell: |
214225
$root = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)"
215226
$version = "${{ parameters.versionMajor }}.${{ parameters.versionMinor }}.${{ parameters.versionPatch }}"
216-
$folderName = "SerialPrograms-$version-Windows-x64"
227+
$folderName = "SerialPrograms-$version-Windows-$(architecture)"
217228
$name = "SerialPrograms-Windows-$(compiler)-$(architecture)"
218229
$buildType = "${{ parameters.buildType }}"
219230
220-
$cacheArtifactsDir = Join-Path $root "cache-artifacts"
221-
$artifactSubdir = Join-Path $cacheArtifactsDir $name
231+
$artifactSubdir = Join-Path $root "cache-artifacts/$name"
232+
$zipPath = Join-Path $artifactSubdir "$name.zip"
222233
New-Item -ItemType Directory -Force -Path $artifactSubdir | Out-Null
223234
224-
$temp = Join-Path $root "temp-archive"
225-
$tempFolder = Join-Path $temp $folderName
235+
$tempFolder = Join-Path $root $folderName
226236
New-Item -ItemType Directory -Force -Path $tempFolder | Out-Null
227237
Copy-Item "$root/cache-build/*" $tempFolder -Recurse -Force
228238
229-
if ($buildType -eq "PrivateBeta") {
230-
Write-Host "=== Encrypting build artifact with password ==="
231-
$zipPath = "$artifactSubdir/$name.zip"
232-
& "C:/Program Files/7-Zip/7z.exe" a -tzip -mx=9 "-p$env:ARTIFACT_PASSWORD" -mem=AES256 $zipPath "$tempFolder/*"
233-
} else {
234-
$zipPath = "$artifactSubdir/$name.zip"
235-
& "C:/Program Files/7-Zip/7z.exe" a -tzip -mx=9 $zipPath "$tempFolder/*"
239+
Push-Location $root
240+
try {
241+
if ($buildType -eq "PrivateBeta") {
242+
Write-Host "=== Encrypting build artifact with password ==="
243+
& "C:/Program Files/7-Zip/7z.exe" a -tzip -mx=9 "-p$env:ARTIFACT_PASSWORD" -mem=AES256 $zipPath $folderName
244+
} else {
245+
& "C:/Program Files/7-Zip/7z.exe" a -tzip -mx=9 $zipPath $folderName
246+
}
247+
if ($LASTEXITCODE -ne 0) {
248+
throw "7-Zip failed with exit code: $LASTEXITCODE"
249+
}
250+
} finally {
251+
Pop-Location
236252
}
237253
238-
Remove-Item $temp -Recurse -Force
239-
254+
Remove-Item $tempFolder -Recurse -Force
240255
Write-Host "=== Created archive with enclosing folder: $folderName ==="
241256
displayName: 'Archive Windows build artifact'
242257
condition: succeeded()
@@ -409,7 +424,7 @@ stages:
409424
echo "=== Encrypting build artifact with password ==="
410425
7z a -tzip -mx=9 "-p$ARTIFACT_PASSWORD" -mem=AES256 "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).zip" "$FOLDER_NAME"
411426
else
412-
tar -I "gzip -9" -cvf $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).tar.gz "$FOLDER_NAME"
427+
7z a -tzip -mx=9 "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).zip" "$FOLDER_NAME"
413428
fi
414429
415430
echo "=== AppImage build complete with enclosing folder: $FOLDER_NAME ==="
@@ -432,24 +447,11 @@ stages:
432447
path: '$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-symbols'
433448
condition: succeeded()
434449

435-
- script: |
436-
BUILD_TYPE="${{ parameters.buildType }}"
437-
if [ "$BUILD_TYPE" = "PrivateBeta" ]; then
438-
EXT="zip"
439-
else
440-
EXT="tar.gz"
441-
fi
442-
443-
ARTIFACT_PATH_UBUNTU="$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).$EXT"
444-
echo "##vso[task.setvariable variable=ARTIFACT_PATH_UBUNTU]$ARTIFACT_PATH_UBUNTU"
445-
displayName: 'Set artifact path'
446-
condition: succeeded()
447-
448450
- task: PublishBuildArtifacts@1
449451
displayName: 'Publish SerialPrograms'
450452
condition: succeeded()
451453
inputs:
452-
PathtoPublish: '$(ARTIFACT_PATH_UBUNTU)'
454+
PathtoPublish: '$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).zip'
453455
ArtifactName: 'SerialPrograms-Linux-$(compiler)-$(architecture)'
454456

455457
###########################################

.azure-pipelines/templates/github-release.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ stages:
193193
fi
194194
195195
if [ "$(LINUX_CACHE_RESTORED)" = "true" ]; then
196-
LINUX_ARTIFACT=$(find "$ARTIFACTS_DIR/artifacts-linux/" -name "*.tar.gz" -type f | head -n 1)
196+
LINUX_ARTIFACT=$(find "$ARTIFACTS_DIR/artifacts-linux/" -name "*.zip" -type f | head -n 1)
197197
if [ ! -f "$LINUX_ARTIFACT" ]; then
198198
echo "✗ Error: Linux artifact not found"
199199
exit 1
@@ -205,7 +205,7 @@ stages:
205205
fi
206206
207207
if [ "$(MACOS_ARM64_CACHE_RESTORED)" = "true" ]; then
208-
MACOS_ARM64_ARTIFACT=$(find "$ARTIFACTS_DIR/artifacts-macos-arm64/" -name "*.tar.gz" -type f | head -n 1)
208+
MACOS_ARM64_ARTIFACT=$(find "$ARTIFACTS_DIR/artifacts-macos-arm64/" -name "*.zip" -type f | head -n 1)
209209
if [ ! -f "$MACOS_ARM64_ARTIFACT" ]; then
210210
echo "✗ Error: MacOS ARM64 artifact not found"
211211
exit 1
@@ -217,7 +217,7 @@ stages:
217217
fi
218218
219219
if [ "$(MACOS_X64_CACHE_RESTORED)" = "true" ]; then
220-
MACOS_X64_ARTIFACT=$(find "$ARTIFACTS_DIR/artifacts-macos-x64/" -name "*.tar.gz" -type f | head -n 1)
220+
MACOS_X64_ARTIFACT=$(find "$ARTIFACTS_DIR/artifacts-macos-x64/" -name "*.zip" -type f | head -n 1)
221221
if [ ! -f "$MACOS_X64_ARTIFACT" ]; then
222222
echo "✗ Error: MacOS X64 artifact not found"
223223
exit 1
@@ -250,7 +250,7 @@ stages:
250250
251251
if [ "$(LINUX_CACHE_RESTORED)" = "true" ] && [ -n "$(LINUX_ARTIFACT)" ]; then
252252
OLD_PATH="$(LINUX_ARTIFACT)"
253-
NEW_NAME="PA-SerialPrograms-Ubuntu-x64-${VERSION}-${BUILD_DATE}.tar.gz"
253+
NEW_NAME="PA-SerialPrograms-Ubuntu-x64-${VERSION}-${BUILD_DATE}.zip"
254254
NEW_PATH="$ARTIFACTS_DIR/$NEW_NAME"
255255
256256
echo "Renaming: $(basename "$OLD_PATH") -> $NEW_NAME"
@@ -260,7 +260,7 @@ stages:
260260
261261
if [ "$(MACOS_ARM64_CACHE_RESTORED)" = "true" ] && [ -n "$(MACOS_ARM64_ARTIFACT)" ]; then
262262
OLD_PATH="$(MACOS_ARM64_ARTIFACT)"
263-
NEW_NAME="PA-SerialPrograms-MacOS-ARM64-${VERSION}-${BUILD_DATE}.tar.gz"
263+
NEW_NAME="PA-SerialPrograms-MacOS-ARM64-${VERSION}-${BUILD_DATE}.zip"
264264
NEW_PATH="$ARTIFACTS_DIR/$NEW_NAME"
265265
266266
echo "Renaming: $(basename "$OLD_PATH") -> $NEW_NAME"
@@ -270,7 +270,7 @@ stages:
270270
271271
if [ "$(MACOS_X64_CACHE_RESTORED)" = "true" ] && [ -n "$(MACOS_X64_ARTIFACT)" ]; then
272272
OLD_PATH="$(MACOS_X64_ARTIFACT)"
273-
NEW_NAME="PA-SerialPrograms-MacOS-x64-${VERSION}-${BUILD_DATE}.tar.gz"
273+
NEW_NAME="PA-SerialPrograms-MacOS-x64-${VERSION}-${BUILD_DATE}.zip"
274274
NEW_PATH="$ARTIFACTS_DIR/$NEW_NAME"
275275
276276
echo "Renaming: $(basename "$OLD_PATH") -> $NEW_NAME"

.azure-pipelines/templates/macos-notarize.yml

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -178,24 +178,23 @@ stages:
178178
VERSION="${{ parameters.versionMajor }}.${{ parameters.versionMinor }}.${{ parameters.versionPatch }}"
179179
FOLDER_NAME="SerialPrograms-$VERSION-MacOS-${{ parameters.architecture }}"
180180
BUILD_TYPE="${{ parameters.buildType }}"
181-
EXT=$([ "$BUILD_TYPE" = "PrivateBeta" ] && echo "zip" || echo "tar.gz")
182181
183182
cd "$(Pipeline.Workspace)/Arduino-Source-Internal"
184183
if [ "$BUILD_TYPE" = "PrivateBeta" ]; then
185184
echo "=== Creating password-protected archive for PrivateBeta ==="
186-
7z a -tzip -mx=9 "-p$ARTIFACT_PASSWORD" -mem=AES256 "SerialPrograms-MacOS-$(compiler)-$(architecture).$EXT" "$FOLDER_NAME"
185+
7z a -tzip -mx=9 "-p$ARTIFACT_PASSWORD" -mem=AES256 "SerialPrograms-MacOS-$(compiler)-$(architecture).zip" "$FOLDER_NAME"
187186
else
188-
echo "=== Creating tarball with enclosing folder ==="
189-
tar -I "gzip -9" -czf "SerialPrograms-MacOS-$(compiler)-$(architecture).$EXT" "$FOLDER_NAME"
187+
echo "=== Creating .zip with enclosing folder ==="
188+
7z a -tzip -mx=9 "SerialPrograms-MacOS-$(compiler)-$(architecture).zip" "$FOLDER_NAME"
190189
fi
191190
192-
echo "=== Creating cache directory and moving tarball ==="
191+
echo "=== Creating cache directory and moving zipped archive ==="
193192
CACHE_DIR="$(Pipeline.Workspace)/Arduino-Source-Internal/cache-notarized"
194193
mkdir -p "$CACHE_DIR"
195-
mv "$(Pipeline.Workspace)/Arduino-Source-Internal/SerialPrograms-MacOS-$(compiler)-$(architecture).$EXT" "$CACHE_DIR/"
194+
mv "$(Pipeline.Workspace)/Arduino-Source-Internal/SerialPrograms-MacOS-$(compiler)-$(architecture).zip" "$CACHE_DIR/"
196195
197-
echo "=== Tarball created with enclosing folder: $FOLDER_NAME ==="
198-
displayName: 'Create a tarball'
196+
echo "=== .zip created with enclosing folder: $FOLDER_NAME ==="
197+
displayName: 'Create a zipped archive'
199198
condition: succeeded()
200199
env:
201200
ARTIFACT_PASSWORD: $(ARTIFACT_PASSWORD)
@@ -207,17 +206,9 @@ stages:
207206
path: '$(Pipeline.Workspace)/Arduino-Source-Internal/cache-notarized'
208207
condition: succeeded()
209208

210-
- script: |
211-
BUILD_TYPE="${{ parameters.buildType }}"
212-
EXT=$([ "$BUILD_TYPE" = "PrivateBeta" ] && echo "zip" || echo "tar.gz")
213-
ARTIFACT_PATH_MACOS="$(Pipeline.Workspace)/Arduino-Source-Internal/cache-notarized/SerialPrograms-MacOS-$(compiler)-$(architecture).$EXT"
214-
echo "##vso[task.setvariable variable=ARTIFACT_PATH_MACOS]$ARTIFACT_PATH_MACOS"
215-
displayName: 'Set artifact path'
216-
condition: succeeded()
217-
218209
- task: PublishPipelineArtifact@1
219210
displayName: 'Publish notarized app'
220211
inputs:
221-
targetPath: '$(ARTIFACT_PATH_MACOS)'
212+
targetPath: '$(Pipeline.Workspace)/Arduino-Source-Internal/cache-notarized/SerialPrograms-MacOS-$(compiler)-$(architecture).zip'
222213
artifact: 'SerialPrograms-MacOS-$(compiler)-$(architecture)'
223214
condition: succeeded()

.azure-pipelines/templates/upload-symbols.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ stages:
175175
exit 1
176176
}
177177
178-
Write-Host "Creating tar.gz archive with Windows tar..."
178+
Write-Host "Creating tar.gz archive..."
179179
$filesToArchive = @()
180180
if ($debugFiles) { $filesToArchive += "*.debug" }
181181
if ($execFile) { $filesToArchive += "SerialPrograms" }
@@ -223,7 +223,7 @@ stages:
223223
exit 1
224224
}
225225
226-
Write-Host "Creating tar.gz archive with Windows tar..."
226+
Write-Host "Creating tar.gz archive..."
227227
$filesToArchive = @()
228228
if ($dsymFiles) { $filesToArchive += "*.dSYM" }
229229
if ($execFile) { $filesToArchive += "SerialPrograms" }
@@ -271,7 +271,7 @@ stages:
271271
exit 1
272272
}
273273
274-
Write-Host "Creating tar.gz archive with Windows tar..."
274+
Write-Host "Creating tar.gz archiv..."
275275
$filesToArchive = @()
276276
if ($dsymFiles) { $filesToArchive += "*.dSYM" }
277277
if ($execFile) { $filesToArchive += "SerialPrograms" }

Common/Cpp/StreamConnections/MockDevice.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#include <string.h>
88
#include "Common/Cpp/Exceptions.h"
9-
#include "Common/PABotBase2/PABotBase2_ConnectionDebug.h"
9+
#include "Common/PABotBase2/ConnectionLayer/PABotBase2_ConnectionDebug.h"
1010
#include "MockDevice.h"
1111

1212
// REMOVE

Common/Cpp/StreamConnections/MockDevice.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include "Common/Cpp/Concurrency/ConditionVariable.h"
1414
#include "Common/Cpp/Concurrency/AsyncTask.h"
1515
#include "Common/Cpp/Concurrency/ThreadPool.h"
16-
#include "Common/PABotBase2/PABotbase2_ReliableStreamConnection.h"
16+
#include "Common/PABotBase2/ConnectionLayer/PABotbase2_ReliableStreamConnection.h"
1717

1818
namespace PokemonAutomation{
1919

Common/Cpp/StreamConnections/PABotBase2_MessageDumper.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#define PokemonAutomation_PABotBase2_MessageDumper_H
99

1010
#include <string>
11-
#include "Common/PABotBase2/PABotBase2_Connection.h"
11+
#include "Common/PABotBase2/ConnectionLayer/PABotBase2_Connection.h"
1212

1313
namespace PokemonAutomation{
1414

Common/Cpp/StreamConnections/ReliableStreamConnection.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#include "Common/CRC32/pabb_CRC32.h"
88
//#include "Common/Cpp/PrettyPrint.h"
99
//#include "Common/Cpp/Exceptions.h"
10-
#include "Common/PABotBase2/PABotBase2_ConnectionDebug.h"
10+
#include "Common/PABotBase2/ConnectionLayer/PABotBase2_ConnectionDebug.h"
1111
#include "Common/Cpp/StreamConnections/PABotBase2_MessageDumper.h"
1212
#include "ReliableStreamConnection.h"
1313

Common/Cpp/StreamConnections/ReliableStreamConnection.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
#include "Common/Cpp/Concurrency/ConditionVariable.h"
1515
#include "Common/Cpp/Concurrency/AsyncTask.h"
1616
#include "Common/Cpp/Concurrency/ThreadPool.h"
17-
#include "Common/PABotBase2/PABotBase2_PacketSender.h"
18-
#include "Common/PABotBase2/PABotBase2_PacketParser.h"
19-
#include "Common/PABotBase2/PABotBase2_StreamCoalescer.h"
17+
#include "Common/PABotBase2/ConnectionLayer/PABotBase2_PacketSender.h"
18+
#include "Common/PABotBase2/ConnectionLayer/PABotBase2_PacketParser.h"
19+
#include "Common/PABotBase2/ConnectionLayer/PABotBase2_StreamCoalescer.h"
2020
#include "StreamConnection.h"
2121

2222
namespace PokemonAutomation{

Common/PABotBase2/PABotBase2_Connection.h renamed to Common/PABotBase2/ConnectionLayer/PABotBase2_Connection.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*
55
*/
66

7-
#ifndef PokemonAutomation_PABotBase2_ConnectionProtocol_H
8-
#define PokemonAutomation_PABotBase2_ConnectionProtocol_H
7+
#ifndef PokemonAutomation_PABotBase2_ConnectionLayer_ConnectionProtocol_H
8+
#define PokemonAutomation_PABotBase2_ConnectionLayer_ConnectionProtocol_H
99

1010
#include <stdbool.h>
1111
#include <stdint.h>
@@ -25,7 +25,7 @@ extern "C" {
2525

2626

2727
#define PABB2_CONNECTION_MAGIC_NUMBER 0x81
28-
#define PABB2_CONNECTION_PROTOCOL_VERSION 2023011700
28+
#define PABB2_CONNECTION_PROTOCOL_VERSION 2025011700
2929

3030

3131
//

0 commit comments

Comments
 (0)