Repository navigation
Expand file tree
/
Copy pathgkvm.ps1
More file actions
40 lines (36 loc) · 1.4 KB
/
Copy pathgkvm.ps1
File metadata and controls
40 lines (36 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<#
.SYNOPSIS
Run a gkvm-tools make target against the current module repository.
.EXAMPLE
.\gkvm.ps1 pre-commit
.\gkvm.ps1 pr-check
#>
param(
[Parameter(Mandatory = $true, Position = 0)][string] $Target
)
$ErrorActionPreference = 'Stop'
if ($env:GKVM_IN_CONTAINER) {
$home_ = if ($env:GKVM_HOME) { $env:GKVM_HOME } else { '/opt/gkvm' }
& make --no-print-directory -f "$home_/Makefile" $Target
exit $LASTEXITCODE
}
$runtime = if ($env:CONTAINER_RUNTIME) { $env:CONTAINER_RUNTIME } else { 'docker' }
$image = if ($env:GKVM_IMAGE) { $env:GKVM_IMAGE } else { 'ghcr.io/glueckkanja/gkvm-tools:v0' }
$azcfg = if ($env:AZURE_CONFIG_DIR) { $env:AZURE_CONFIG_DIR } else { Join-Path $HOME '.azure' }
New-Item -ItemType Directory -Force -Path $azcfg | Out-Null
$passthrough = @(
'GKVM_BINARY', 'GKVM_PROFILE', 'GKVM_E2E', 'GKVM_EXAMPLE', 'GKVM_ZIZMOR_PERSONA',
'ARM_CLIENT_ID', 'ARM_CLIENT_SECRET', 'ARM_TENANT_ID', 'ARM_SUBSCRIPTION_ID', 'ARM_USE_OIDC', 'ARM_USE_AZUREAD',
'GITHUB_TOKEN', 'GH_TOKEN', 'GITHUB_OWNER', 'GITHUB_REPOSITORY',
'GITHUB_APP_ID', 'GITHUB_APP_INSTALLATION_ID', 'GITHUB_APP_PEM_FILE', 'GITHUB_BASE_URL'
)
$envArgs = @()
foreach ($name in $passthrough) {
if (Test-Path "env:$name") { $envArgs += @('-e', $name) }
}
& $runtime run --rm -it `
-v "${PWD}:/src" -w /src `
-v "${azcfg}:/azureconfig" -e AZURE_CONFIG_DIR=/azureconfig `
@envArgs `
$image gkvm $Target
exit $LASTEXITCODE