1+ # ensure variables were passed in
2+ if ($env: NUPKG_PATH -eq $null )
3+ {
4+ Write-Verbose - Verbose " NUPKG_PATH variable didn't get set properly"
5+ return 1
6+ }
7+
8+ if ($env: PSRESOURCE_NAME -eq $null )
9+ {
10+ Write-Verbose - Verbose " PSRESOURCE_NAME variable didn't get set properly"
11+ return 1
12+ }
13+
14+ if ($env: PSRESOURCE_VERSION -eq $null )
15+ {
16+ Write-Verbose - Verbose " PSRESOURCE_VERSION variable didn't get set properly"
17+ return 1
18+ }
19+
20+ if ($env: DESTINATION_ACR_NAME -eq $null )
21+ {
22+ Write-Verbose - Verbose " DESTINATION_ACR_NAME variable didn't get passed correctly"
23+ return 1
24+ }
25+
26+ if ($env: DESTINATION_ACR_URI -eq $null )
27+ {
28+ Write-Verbose - Verbose " DESTINATION_ACR_URI variable didn't get passed correctly"
29+ return 1
30+ }
31+
32+ if ($env: MI_CLIENTID -eq $null )
33+ {
34+ Write-Verbose - Verbose " MI_CLIENTID variable didn't get passed correctly"
35+ return 1
36+ }
37+
38+ try {
39+ Write-Verbose - Verbose " .nupkg file path: $env: NUPKG_PATH "
40+ Write-Verbose - Verbose " psresource name: $env: PSRESOURCE_NAME "
41+ Write-Verbose - Verbose " psresource version: $env: PSRESOURCE_VERSION "
42+ Write-Verbose - Verbose " ACR name: $env: DESTINATION_ACR_NAME "
43+ Write-Verbose - Verbose " ACR uri: $env: DESTINATION_ACR_URI "
44+ Write-Verbose - Verbose " MI client Id: $env: MI_CLIENTID "
45+
46+ $nupkgFileName = " $ ( $env: PSRESOURCE_NAME ) .$ ( $env: PSRESOURCE_VERSION ) .nupkg"
47+ Write-Verbose - Verbose " Download file"
48+ Invoke-WebRequest - Uri $env: NUPKG_PATH - OutFile $nupkgFileName
49+
50+ # Install PSResourceGet 1.1.0
51+ Write-Verbose " Download PSResourceGet version 1.1.0"
52+ Register-PSRepository - Name CFS - SourceLocation " https://pkgs.dev.azure.com/powershell/PowerShell/_packaging/powershell/nuget/v2" - InstallationPolicy Trusted
53+ Install-Module - Repository CFS - Name Microsoft.PowerShell.PSResourceGet - RequiredVersion ' 1.1.0' - AllowPrerelease - Verbose
54+ Import-Module Microsoft.PowerShell.PSResourceGet
55+ Get-Module
56+
57+ # Login to Azure CLI using Managed Identity
58+ Write-Verbose - Verbose " Login cli using managed identity"
59+ az login -- identity -- client- id $env: MI_CLIENTID
60+
61+ # Register the target ACR as a PSResourceGet repository
62+ Write-Verbose - Verbose " Register ACR as a PSResourceGet reposirory"
63+ Register-PSResourceRepository - Uri $env: DESTINATION_ACR_URI - Name $env: DESTINATION_ACR_NAME - Trusted - Verbose
64+
65+ Get-PSResourceRepository
66+
67+ # Publish module to ACR
68+ Write-Verbose - Verbose " Publish $env: PSRESOURCE_NAME from file $nupkgFileName to ACR $env: DESTINATION_ACR_NAME "
69+
70+ # unlisted
71+ $prefix = " unlisted/psresource"
72+ Publish-PSResource - NupkgPath $nupkgFileName - Repository $env: DESTINATION_ACR_NAME - ModulePrefix $prefix - Confirm:$false
73+
74+ # public
75+ $prefix = " public/psresource"
76+
77+ Publish-PSResource - NupkgPath $nupkgFileName - Repository $env: DESTINATION_ACR_NAME - ModulePrefix $prefix - Confirm:$false
78+ }
79+ catch {
80+ $_.Exception | Format-List - Force
81+
82+ return 1
83+ }
84+
85+ return 0
0 commit comments