Skip to content

Commit 9b90039

Browse files
committed
Added agent maintenance scripts.
1 parent 208ee34 commit 9b90039

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

scripts/adhoc/UnlistAll.ps1

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[CmdletBinding()]
2+
param(
3+
[Parameter(Mandatory=$true)]
4+
[String]$apiKey
5+
)
6+
7+
# Edit these versions.
8+
$compilerVersion = "2023.0.109"
9+
$frameworkVersion = "2023.0.114"
10+
$backstageVersion = "2023.0.106"
11+
12+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Backstage $backstageVersion
13+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Compiler.Sdk $compilerVersion
14+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Extensions.Architecture $frameworkVersion
15+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Extensions.DependencyInjection $frameworkVersion
16+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Extensions.DependencyInjection.ServiceLocator $frameworkVersion
17+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Extensions.Metrics $frameworkVersion
18+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Extensions.Metrics.Redist $frameworkVersion
19+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Extensions.Multicast $frameworkVersion
20+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Framework $frameworkVersion
21+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Framework.Engine $frameworkVersion
22+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Framework.Redist $frameworkVersion
23+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Framework.Sdk $frameworkVersion
24+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Framework.Workspaces $frameworkVersion
25+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Framework.Introspection $frameworkVersion
26+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Framework.CompileTimeContracts $frameworkVersion
27+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.LinqPad $frameworkVersion
28+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Migration $frameworkVersion
29+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Testing.AspectTesting $frameworkVersion
30+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Testing.UnitTesting $frameworkVersion
31+
dotnet nuget delete --non-interactive -s https://www.nuget.org -k $apiKey Metalama.Tool $frameworkVersion
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
$ErrorActionPreference = 'Stop'
2+
3+
# Remove all Docker images that have not been used for 7 days.
4+
docker image prune -a --filter "until=168h" --force
5+
6+
# Pull this repo.
7+
git pull
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# --- Settings ---
2+
$TaskName = 'BuildAgent Daily Maintenance'
3+
$ScriptPath = "PSScriptRoot\Daily-Maintenance.ps1"
4+
$DailyAt = '03:00'
5+
6+
# --- Define action (run as SYSTEM) ---
7+
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument @(
8+
'-NoProfile','-ExecutionPolicy','Bypass','-File', $ScriptPath
9+
)
10+
11+
# --- Triggers: at startup + daily ---
12+
$startupTrigger = New-ScheduledTaskTrigger -AtStartup
13+
$dailyTrigger = New-ScheduledTaskTrigger -Daily -At ([datetime]::Parse($DailyAt))
14+
15+
# --- Settings: run if missed, limit runtime, tolerate overlap ---
16+
$settings = New-ScheduledTaskSettingsSet `
17+
-StartWhenAvailable `
18+
-RunOnlyIfNetworkAvailable `
19+
-ExecutionTimeLimit (New-TimeSpan -Hours 2) `
20+
-MultipleInstances IgnoreNew `
21+
-AllowStartIfOnBatteries `
22+
-DontStopIfGoingOnBatteries
23+
24+
# --- Principal: SYSTEM, highest privileges ---
25+
$principal = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount -RunLevel Highest
26+
27+
# --- Create/overwrite the task ---
28+
$task = New-ScheduledTask -Action $action -Trigger @($startupTrigger,$dailyTrigger) -Settings $settings -Principal $principal
29+
Register-ScheduledTask -TaskName $TaskName -InputObject $task -Force

0 commit comments

Comments
 (0)