@@ -522,27 +522,32 @@ function Install-Runner() {
522
522
Import-Certificate -CertificateData $data -StoreName Root -StoreLocation LocalMachine
523
523
}
524
524
525
- Update-GarmStatus -CallbackURL $CallbackURL -Message "downloading tools from $DownloadURL"
526
-
527
- $downloadToken="{{.TempDownloadToken}}"
528
- $DownloadTokenHeaders=@{}
529
- if ($downloadToken.Length -gt 0) {
530
- $DownloadTokenHeaders=@{
531
- "Authorization"="Bearer $downloadToken"
525
+ $runnerDir = "C:\actions-runner"
526
+ # Check if a cached runner is available
527
+ if (-not (Test-Path $runnerDir)) {
528
+ # No cached runner found, proceed to download and extract
529
+ Update-GarmStatus -CallbackURL $CallbackURL -Message "downloading tools from {{ .DownloadURL }}"
530
+
531
+ $downloadToken="{{.TempDownloadToken}}"
532
+ $DownloadTokenHeaders=@{}
533
+ if ($downloadToken.Length -gt 0) {
534
+ $DownloadTokenHeaders=@{
535
+ "Authorization"="Bearer $downloadToken"
536
+ }
532
537
}
533
- }
534
- $downloadPath = Join-Path $env:TMP {{.FileName}}
535
- # Download runner with retry
536
- Start-ExecuteWithRetry -ScriptBlock {
537
- Invoke-FastWebRequest -Uri $DownloadURL -OutFile $downloadPath -Headers $DownloadTokenHeaders
538
- } -MaxRetryCount 5 -RetryInterval 5 -RetryMessage "Retrying download of runner..."
539
538
540
- $runnerDir = "C:\runner"
541
- mkdir $runnerDir
542
-
543
- Update-GarmStatus -CallbackURL $CallbackURL -Message "extracting runner"
544
- Add-Type -AssemblyName System.IO.Compression.FileSystem
545
- [System.IO.Compression.ZipFile]::ExtractToDirectory($downloadPath, "$runnerDir")
539
+ $downloadPath = Join-Path $env:TMP "{{ .FileName }}"
540
+ Start-ExecuteWithRetry -ScriptBlock {
541
+ Invoke-FastWebRequest -Uri "{{ .DownloadURL }}" -OutFile $downloadPath -Headers $DownloadTokenHeaders
542
+ } -MaxRetryCount 5 -RetryInterval 5 -RetryMessage "Retrying download of runner..."
543
+
544
+ mkdir $runnerDir
545
+ Update-GarmStatus -CallbackURL $CallbackURL -Message "extracting runner"
546
+ Add-Type -AssemblyName System.IO.Compression.FileSystem
547
+ [System.IO.Compression.ZipFile]::ExtractToDirectory($downloadPath, "$runnerDir")
548
+ } else {
549
+ Update-GarmStatus -CallbackURL $CallbackURL -Message "using cached runner found at $runnerDir"
550
+ }
546
551
547
552
Update-GarmStatus -CallbackURL $CallbackURL -Message "configuring and starting runner"
548
553
cd $runnerDir
@@ -563,7 +568,7 @@ function Install-Runner() {
563
568
564
569
Update-GarmStatus -CallbackURL $CallbackURL -Message "Creating system service"
565
570
$SVC_NAME=(gc -raw $serviceNameFile)
566
- New-Service -Name "$SVC_NAME" -BinaryPathName "C:\runner\bin\RunnerService.exe" -DisplayName "$SVC_NAME" -Description "GitHub Actions Runner ($SVC_NAME)" -StartupType Automatic
571
+ New-Service -Name "$SVC_NAME" -BinaryPathName "C:\actions- runner\bin\RunnerService.exe" -DisplayName "$SVC_NAME" -Description "GitHub Actions Runner ($SVC_NAME)" -StartupType Automatic
567
572
Start-Service "$SVC_NAME"
568
573
Set-SystemInfo -CallbackURL $CallbackURL -RunnerDir $runnerDir -BearerToken $Token
569
574
Update-GarmStatus -Message "runner successfully installed" -CallbackURL $CallbackURL -Status "idle" | Out-Null
0 commit comments