Skip to content

Commit cf948ed

Browse files
committed
.
1 parent e4509ff commit cf948ed

2 files changed

Lines changed: 67 additions & 63 deletions

File tree

.github/workflows/ci.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,7 @@ jobs:
834834
if: ${{ matrix.os == 'windows' }}
835835
run: |
836836
$Arch = '${{ matrix.arch }}'
837-
$Destination = Join-Path $PWD "tun2socks"
837+
$Destination = Join-Path $PWD "tun2socks" $Arch
838838
./ci/download-tun2socks.ps1 -Architecture $Arch -Destination $Destination
839839
$Tun2SocksExecutablePath = Join-Path $Destination "tun2socks.exe"
840840
$WintunLibraryPath = Join-Path $Destination "wintun.dll"
@@ -849,7 +849,7 @@ jobs:
849849
if: ${{ matrix.os == 'windows' }}
850850
uses: actions/upload-artifact@v7
851851
with:
852-
name: tun2socks-${{ matrix.os }}-${{ matrix.arch }}
852+
name: tun2socks-windows-${{ matrix.arch }}
853853
path: tun2socks/
854854

855855
- name: Setup LLVM
@@ -1001,6 +1001,19 @@ jobs:
10011001
pattern: devolutions-agent-*
10021002
delete-merged: true
10031003

1004+
tun2socks-windows-merge:
1005+
name: tun2socks windows merge artifacts
1006+
runs-on: ubuntu-latest
1007+
needs: [preflight, devolutions-agent]
1008+
1009+
steps:
1010+
- name: Merge Artifacts
1011+
uses: actions/upload-artifact/merge@v7
1012+
with:
1013+
name: tun2socks-windows
1014+
pattern: tun2socks-windows-*
1015+
delete-merged: true
1016+
10041017
devolutions-pedm-client:
10051018
name: devolutions-pedm-client
10061019
runs-on: ubuntu-latest

.github/workflows/package.yml

Lines changed: 52 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -475,36 +475,64 @@ jobs:
475475
if: ${{ matrix.os == 'windows' && matrix.project == 'devolutions-agent' }}
476476
run: |
477477
$PackageRoot = Join-Path ${{ runner.temp }} ${{ matrix.project}}
478-
gh run download ${{ needs.preflight.outputs.run }} -n tun2socks-windows-x64 -D "$PackageRoot\tun2socks"
478+
gh run download ${{ needs.preflight.outputs.run }} -n tun2socks-windows -D (Join-Path $PackageRoot windows)
479479
shell: pwsh
480480
env:
481481
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
482482

483-
- name: Regenerate Agent MSI
483+
- name: Regenerate and Repackage Agent MSI
484484
if: ${{ matrix.project == 'devolutions-agent' && matrix.os == 'windows' }}
485485
run: |
486-
$PackageRoot = Join-Path ${{ runner.temp }} ${{ matrix.project}}
487-
$x64Root = Join-Path $PackageRoot windows x64
488-
489-
$Env:DAGENT_EXECUTABLE = Get-ChildItem -Path $x64Root -Filter 'DevolutionsAgent.exe' -File | Select -First 1
490-
$Env:DAGENT_UPDATER_EXECUTABLE = Get-ChildItem -Path $x64Root -Filter 'DevolutionsAgentUpdater.exe' -File | Select -First 1
491-
$Env:DAGENT_DESKTOP_AGENT_PATH = Resolve-Path -Path "devolutions-pedm-desktop"
492-
$Env:DAGENT_PEDM_SHELL_EXT_DLL = Get-ChildItem -Path $x64Root -Filter 'DevolutionsPedmShellExt.dll' -File | Select -First 1
493-
$Env:DAGENT_PEDM_SHELL_EXT_MSIX = Get-ChildItem -Path $x64Root -Filter 'DevolutionsPedmShellExt.msix' -File | Select -First 1
494-
$Env:DAGENT_SESSION_EXECUTABLE = Get-ChildItem -Path $x64Root -Filter 'DevolutionsSession.exe' -File | Select -First 1
495-
$Env:DAGENT_TUN2SOCKS_EXE = Get-ChildItem -Path $PackageRoot -Recurse -Filter 'tun2socks.exe' -File | Select -First 1
496-
$Env:DAGENT_WINTUN_DLL = Get-ChildItem -Path $PackageRoot -Recurse -Filter 'wintun.dll' -File | Select -First 1
497-
498-
Write-Host "DAGENT_EXECUTABLE = ${Env:DAGENT_EXECUTABLE}"
499-
Write-Host "DAGENT_UPDATER_EXECUTABLE = ${Env:DAGENT_UPDATER_EXECUTABLE}"
500-
Write-Host "DAGENT_DESKTOP_AGENT_PATH = ${Env:DAGENT_DESKTOP_AGENT_PATH}"
501-
Write-Host "DAGENT_PEDM_SHELL_EXT_DLL = ${Env:DAGENT_PEDM_SHELL_EXT_DLL}"
502-
Write-Host "DAGENT_PEDM_SHELL_EXT_MSIX = ${Env:DAGENT_PEDM_SHELL_EXT_MSIX}"
503-
Write-Host "DAGENT_SESSION_EXECUTABLE = ${Env:DAGENT_SESSION_EXECUTABLE}"
504-
Write-Host "DAGENT_TUN2SOCKS_EXE = ${Env:DAGENT_TUN2SOCKS_EXE}"
505-
Write-Host "DAGENT_WINTUN_DLL = ${Env:DAGENT_WINTUN_DLL}"
506-
507-
./ci/tlk.ps1 package -Product agent -PackageOption generate
486+
$PackageRoot = Join-Path ${{ runner.temp }} devolutions-agent
487+
488+
foreach ($Arch in @('x64', 'arm64')) {
489+
$ArchRoot = Join-Path $PackageRoot windows $Arch
490+
491+
$Env:DAGENT_EXECUTABLE = Get-ChildItem -Path $ArchRoot -Filter 'DevolutionsAgent.exe' -File | Select-Object -First 1
492+
$Env:DAGENT_UPDATER_EXECUTABLE = Get-ChildItem -Path $ArchRoot -Filter 'DevolutionsAgentUpdater.exe' -File | Select-Object -First 1
493+
$Env:DAGENT_DESKTOP_AGENT_PATH = Resolve-Path -Path "devolutions-pedm-desktop"
494+
$Env:DAGENT_PEDM_SHELL_EXT_DLL = Get-ChildItem -Path $ArchRoot -Filter 'DevolutionsPedmShellExt.dll' -File | Select-Object -First 1
495+
$Env:DAGENT_PEDM_SHELL_EXT_MSIX = Get-ChildItem -Path $ArchRoot -Filter 'DevolutionsPedmShellExt.msix' -File | Select-Object -First 1
496+
$Env:DAGENT_SESSION_EXECUTABLE = Get-ChildItem -Path $ArchRoot -Filter 'DevolutionsSession.exe' -File | Select-Object -First 1
497+
$Env:DAGENT_TUN2SOCKS_EXE = Join-Path $ArchRoot 'tun2socks.exe'
498+
$Env:DAGENT_WINTUN_DLL = Join-Path $ArchRoot 'wintun.dll'
499+
500+
Write-Host "=== Regenerate Agent MSI ($Arch) ==="
501+
Write-Host "DAGENT_EXECUTABLE = ${Env:DAGENT_EXECUTABLE}"
502+
Write-Host "DAGENT_UPDATER_EXECUTABLE = ${Env:DAGENT_UPDATER_EXECUTABLE}"
503+
Write-Host "DAGENT_DESKTOP_AGENT_PATH = ${Env:DAGENT_DESKTOP_AGENT_PATH}"
504+
Write-Host "DAGENT_PEDM_SHELL_EXT_DLL = ${Env:DAGENT_PEDM_SHELL_EXT_DLL}"
505+
Write-Host "DAGENT_PEDM_SHELL_EXT_MSIX = ${Env:DAGENT_PEDM_SHELL_EXT_MSIX}"
506+
Write-Host "DAGENT_SESSION_EXECUTABLE = ${Env:DAGENT_SESSION_EXECUTABLE}"
507+
Write-Host "DAGENT_TUN2SOCKS_EXE = ${Env:DAGENT_TUN2SOCKS_EXE}"
508+
Write-Host "DAGENT_WINTUN_DLL = ${Env:DAGENT_WINTUN_DLL}"
509+
510+
./ci/tlk.ps1 package -Product agent -PackageOption generate -Architecture $Arch
511+
512+
# Sign the generated runtime EXEs before assembling the MSI
513+
Get-ChildItem -Path "package/AgentWindowsManaged/Release" -Filter "*.exe" | ForEach-Object {
514+
$Params = @('sign',
515+
'-kvt', '${{ secrets.AZURE_TENANT_ID }}',
516+
'-kvu', '${{ secrets.CODE_SIGNING_KEYVAULT_URL }}',
517+
'-kvi', '${{ secrets.CODE_SIGNING_CLIENT_ID }}',
518+
'-kvs', '${{ secrets.CODE_SIGNING_CLIENT_SECRET }}',
519+
'-kvc', '${{ secrets.CODE_SIGNING_CERTIFICATE_NAME }}',
520+
'-tr', '${{ vars.CODE_SIGNING_TIMESTAMP_SERVER }}',
521+
'-v')
522+
AzureSignTool @Params $_.FullName
523+
}
524+
525+
$Env:DAGENT_PACKAGE = Join-Path $ArchRoot 'DevolutionsAgent.msi'
526+
./ci/tlk.ps1 package -Product agent -PackageOption assemble
527+
528+
# Remove arch-specific files that should not appear in the signed artifact
529+
@((Join-Path $ArchRoot DesktopAgent),
530+
(Get-ChildItem -Path $ArchRoot -Filter 'DevolutionsPedmShellExt.dll' | Select-Object -First 1),
531+
(Get-ChildItem -Path $ArchRoot -Filter 'DevolutionsPedmShellExt.msix' | Select-Object -First 1),
532+
(Get-ChildItem -Path $ArchRoot -Filter 'DevolutionsSession.exe' | Select-Object -First 1)) | ForEach-Object {
533+
Remove-Item $_ -Recurse -ErrorAction SilentlyContinue | Out-Null
534+
}
535+
}
508536
shell: pwsh
509537

510538
- name: Sign Gateway MSI runtime
@@ -524,23 +552,6 @@ jobs:
524552
shell: pwsh
525553
working-directory: package/WindowsManaged/Release
526554

527-
- name: Sign Agent MSI runtime
528-
if: ${{ matrix.project == 'devolutions-agent' && matrix.os == 'windows' }}
529-
run: |
530-
Get-ChildItem -Path .\* -Include "*.exe" | % {
531-
$Params = @('sign',
532-
'-kvt', '${{ secrets.AZURE_TENANT_ID }}',
533-
'-kvu', '${{ secrets.CODE_SIGNING_KEYVAULT_URL }}',
534-
'-kvi', '${{ secrets.CODE_SIGNING_CLIENT_ID }}',
535-
'-kvs', '${{ secrets.CODE_SIGNING_CLIENT_SECRET }}',
536-
'-kvc', '${{ secrets.CODE_SIGNING_CERTIFICATE_NAME }}',
537-
'-tr', '${{ vars.CODE_SIGNING_TIMESTAMP_SERVER }}',
538-
'-v')
539-
AzureSignTool @Params $_.FullName
540-
}
541-
shell: pwsh
542-
working-directory: package/AgentWindowsManaged/Release
543-
544555
- name: Repackage Gateway
545556
if: ${{ matrix.project == 'devolutions-gateway' && matrix.os == 'windows' }}
546557
run: |
@@ -553,26 +564,6 @@ jobs:
553564
Remove-Item $Env:DGATEWAY_PSMODULE_PATH -Recurse -ErrorAction SilentlyContinue | Out-Null
554565
shell: pwsh
555566

556-
- name: Repackage Agent
557-
if: ${{ matrix.project == 'devolutions-agent' && matrix.os == 'windows' }}
558-
run: |
559-
$PackageRoot = Join-Path ${{ runner.temp }} devolutions-agent
560-
$Env:DAGENT_PACKAGE = Get-ChildItem -Path $PackageRoot -Recurse -Filter 'DevolutionsAgent.msi' -File | Select -First 1
561-
562-
./ci/tlk.ps1 package -Product agent -PackageOption assemble
563-
564-
$Env:DAGENT_DESKTOP_AGENT_OUTPUT_PATH = Join-Path $PackageRoot ${{ matrix.os }} x64 DesktopAgent
565-
$Env:DAGENT_PEDM_SHELL_EXT_DLL = Get-ChildItem -Path $PackageRoot -Recurse -Include 'DevolutionsPedmShellExt.dll' | Select -First 1
566-
$Env:DAGENT_PEDM_SHELL_EXT_MSIX = Get-ChildItem -Path $PackageRoot -Recurse -Include 'DevolutionsPedmShellExt.msix' | Select -First 1
567-
$Env:DAGENT_SESSION_EXECUTABLE = Get-ChildItem -Path $PackageRoot -Recurse -Include 'DevolutionsSession.exe' | Select -First 1
568-
569-
@($Env:DAGENT_DESKTOP_AGENT_OUTPUT_PATH,
570-
$Env:DAGENT_PEDM_SHELL_EXT_DLL, $Env:DAGENT_PEDM_SHELL_EXT_MSIX,
571-
$Env:DAGENT_SESSION_EXECUTABLE) | ForEach-Object {
572-
Remove-Item $_ -Recurse -ErrorAction SilentlyContinue | Out-Null
573-
}
574-
shell: pwsh
575-
576567
- name: Sign packages
577568
if: ${{ (matrix.project == 'devolutions-gateway' || matrix.project == 'devolutions-agent') && matrix.os == 'windows' }}
578569
run: |

0 commit comments

Comments
 (0)