@@ -40,26 +40,49 @@ Param(
40
40
[String ]
41
41
$DOCKER_IMAGE_SUFFIX_ARRAY = " nanoserver-ltsc2022"
42
42
)
43
+ Write-Host " Checking for PnP PowerShell docker images... " - NoNewLine
43
44
$publishedImageVersions = (Invoke-RestMethod https:// registry.hub.docker.com / v2/ repositories/ $DOCKER_ORG / $DOCKER_IMAGE_NAME / tags?page_size= 10240 ).results | % {
44
45
$_.name
45
46
}
46
- $moduleVersions = Find-Module $PS_MODULE_NAME - AllVersions;
47
- [array ]::Reverse($moduleVersions );
47
+ Write-Host " $ ( $publishedImageVersions.Length ) found"
48
+
49
+ Write-Host " Checking for PnP PowerShell versions... " - NoNewLine
50
+ $moduleVersions = @ (Find-Module $PS_MODULE_NAME - AllVersions)
51
+ Write-Host " $ ( $moduleVersions.Length ) found"
52
+
53
+ [array ]::Reverse($moduleVersions )
48
54
$moduleVersions | % {
49
- $moduleVersion = $_.Version ;
55
+ $moduleVersion = $_.Version
56
+
57
+ Write-Host " Validating docker image for PnP PowerShell version $moduleVersion "
58
+
50
59
$DOCKER_IMAGE_SUFFIX_ARRAY.Split ( " ," ) | % {
51
- $baseImageSuffix = $_ ;
52
- $imageVersion = " $moduleVersion -$baseImageSuffix " ;
53
- Write-Host " Checking $imageVersion "
54
- if ( ! ( $publishedImageVersions -contains $imageVersion ) ) {
60
+ $baseImageSuffix = $_
61
+ $imageVersion = " $moduleVersion -$baseImageSuffix "
62
+
63
+ Write-Host " - Validating build $imageVersion ... " - NoNewLine
64
+
65
+ if (! ($publishedImageVersions -contains $imageVersion ))
66
+ {
67
+ Write-Host " not found, building new docker image... " - NoNewLine
68
+
55
69
docker build -- build-arg " PNP_MODULE_VERSION=$moduleVersion " -- build-arg " BASE_IMAGE_SUFFIX=$baseImageSuffix " -- build-arg " INSTALL_USER=$DOCKER_INSTALL_USER " -- build-arg " SKIP_PUBLISHER_CHECK=$SKIP_PUBLISHER_CHECK " ./ docker -f ./ docker/ pnppowershell.dockerFile -- tag $DOCKER_ORG / $DOCKER_IMAGE_NAME ` :$imageVersion ;
56
70
$plainStringPassword = [System.Net.NetworkCredential ]::new(" " , $DOCKER_PASSWORD ).Password;
57
71
docker login - u $DOCKER_USERNAME - p " $plainStringPassword " ;
58
72
docker push $DOCKER_ORG / $DOCKER_IMAGE_NAME ` :$imageVersion ;
59
- if ( $baseImageSuffix -eq " alpine-3.20" ) {
73
+ if ($baseImageSuffix -eq " alpine-3.20" )
74
+ {
75
+ Write-Host " assigning latest tag... " - NoNewLine
76
+
60
77
docker image tag $DOCKER_ORG / $DOCKER_IMAGE_NAME ` :$imageVersion $DOCKER_ORG / $DOCKER_IMAGE_NAME ` :latest;
61
78
docker push $DOCKER_ORG / $DOCKER_IMAGE_NAME ` :latest;
62
79
}
80
+
81
+ Write-Host " done"
82
+ }
83
+ else
84
+ {
85
+ Write-Host " found, skipping"
63
86
}
64
87
}
65
88
}
0 commit comments