GitHub Actions Runner

This commit is contained in:
Tingluo Huang
2019-10-10 00:52:42 -04:00
commit c8afc84840
1255 changed files with 198670 additions and 0 deletions

99
src/Trim-Sdk.ps1 Normal file
View File

@@ -0,0 +1,99 @@
$ErrorActionPreference = "Stop"
# Push-Location -Path .\Sdk
try
{
# Generate Namespaces.cs
Write-Host 'Generating Namespaces.cs'
Remove-Item -Path Sdk\Namespaces.cs -ErrorAction Ignore
$namespaces = New-Object System.Collections.Generic.HashSet[string]
$output = findstr /snir /c:"^namespace " Sdk\*.cs
foreach ($outputLine in ($output.Trim().Replace("`r", "").Split("`n")))
{
$namespace = $outputLine.Trim().Split(':')[-1].Split(' ')[-1]
$namespaces.Add($namespace) | Out-Null
}
$namespaces = New-Object System.Collections.Generic.List[string]($namespaces)
$namespaces.Sort()
$content = New-Object System.Text.StringBuilder
foreach ($namespace in $namespaces)
{
$content.AppendLine("namespace $namespace") | Out-Null
$content.AppendLine("{") | Out-Null
$content.AppendLine("}") | Out-Null
$content.AppendLine("") | Out-Null
}
[System.IO.File]::WriteAllText("$pwd\Sdk\Namespaces.cs", $content.ToString(), (New-Object System.Text.UTF8Encoding($false)))
# Gather whitelist of files not to delete
Write-Host 'Gathering whitelist of files not to delete'
$whitelist = New-Object System.Collections.Generic.HashSet[string]
$whitelist.Add(((Resolve-Path -Path Sdk\Namespaces.cs).Path)) | Out-Null
foreach ($file in (Get-ChildItem -Path Sdk\DTExpressions -Recurse -Filter *.cs))
{
$whitelist.Add($file.FullName) | Out-Null
}
foreach ($file in (Get-ChildItem -Path Sdk\DTLogging -Recurse -Filter *.cs))
{
$whitelist.Add($file.FullName) | Out-Null
}
foreach ($file in (Get-ChildItem -Path Sdk\DTObjectTemplating -Recurse -Filter *.cs))
{
$whitelist.Add($file.FullName) | Out-Null
}
foreach ($file in (Get-ChildItem -Path Sdk\DTPipelines\Pipelines\ContextData -Recurse -Filter *.cs))
{
$whitelist.Add($file.FullName) | Out-Null
}
foreach ($file in (Get-ChildItem -Path Sdk\DTPipelines\Pipelines\ObjectTemplating -Recurse -Filter *.cs))
{
$whitelist.Add($file.FullName) | Out-Null
}
# Gather candidate files to delete
Write-Host 'Gathering candidate files to delete'
$candidatePaths = New-Object System.Collections.Generic.List[string]
$deletedPaths = New-Object System.Collections.Generic.List[string]
foreach ($candidateFile in (Get-ChildItem -Path Sdk -Recurse -Filter *.cs))
{
if (!$whitelist.Contains($candidateFile.FullName) -and (($candidateFile.FullName.IndexOf('\obj\')) -le 0))
{
$candidatePaths.Add($candidateFile.FullName)
}
}
while ($true)
{
$found = $false
for ($i = 0; $i -lt $candidatePaths.Count; )
{
$candidatePath = $candidatePaths[$i]
Write-Host "Checking $candidatePath"
Remove-Item -Path $candidatePath
.\dev.cmd build
if ($LASTEXITCODE -eq 0)
{
$deletedPaths.Add($candidatePath)
$candidatePaths.RemoveAt($i)
Write-Host "Successfully deleted $candidatePath"
$found = $true
}
else
{
Write-Host "Undeleting $candidatePath"
git checkout -- $candidatePath
$i++
}
}
if (!$found)
{
break;
}
}
}
finally
{
# Pop-Location
}