Commit d8f927b
committed
fix(make.ps1): fetch jenkins versions from Artifactory and set
Amends:
- jenkinsci#2189
diff --git a/make.ps1 b/make.ps1
index 665c6ce..abfebdc 100644
--- a/make.ps1
+++ b/make.ps1
@@ -42,21 +42,6 @@ $env:DOCKERHUB_REPO = "$Repository"
$env:JENKINS_VERSION = "$JenkinsVersion"
$env:COMMIT_SHA = git rev-parse HEAD
-# Add 'lts-' prefix to LTS tags not including Jenkins version
-# Compared to weekly releases, LTS releases include an additional build number in their version
-# Note: the ':' separator is included as trying to set an environment variable to empty on Windows unset it.
-$env:SEPARATOR_LTS_PREFIX = ':'
-$releaseLine = 'war'
-if ($JenkinsVersion.Split('.').Count -eq 3) {
- $env:SEPARATOR_LTS_PREFIX = ':lts-'
- $releaseLine = 'war-stable'
-}
-
-# If there is no WAR_URL set, using get.jenkins.io URL depending on the release line
-if([String]::IsNullOrWhiteSpace($env:WAR_URL)) {
- $env:WAR_URL = 'https://get.jenkins.io/{0}/{1}/jenkins.war' -f $releaseLine, $env:JENKINS_VERSION
-}
-
# Check for required commands
Function Test-CommandExists {
Param (
@@ -121,6 +106,52 @@ function Test-Image {
return $failed
}
+function Test-IsLatestJenkinsRelease {
+ param (
+ [String] $Version
+ )
+
+ Write-Host "= PREPARE: Checking if $env:JENKINS_VERSION is latest Weekly or LTS..."
+
+ $metadataUrl = "https://repo.jenkins-ci.org/releases/org/jenkins-ci/main/jenkins-war/maven-metadata.xml"
+ try {
+ [xml]$metadata = Invoke-WebRequest $metadataUrl -UseBasicParsing
+ }
+ catch {
+ Write-Error "Failed to retrieve Jenkins versions from Artifactory"
+ exit 1
+ }
+ $allVersions = $metadata.metadata.versioning.versions.version
+
+ # Weekly
+ $weeklyVersions = $allVersions |
+ Where-Object { $_ -match '^\d+\.\d+$' } |
+ ForEach-Object { [version]$_ } |
+ Sort-Object
+
+ # LTS
+ $ltsVersions = $allVersions |
+ Where-Object { $_ -match '^\d+\.\d+\.\d+$' } |
+ ForEach-Object { [version]$_ } |
+ Sort-Object
+
+ $latestWeeklyVersion = $weeklyVersions[-1]
+ Write-Host "latest Weekly version: $latestWeeklyVersion"
+ $latestLTSVersion = $ltsVersions[-1]
+ Write-Host "latest LTS version: $latestLTSVersion"
+
+ $latest = $false
+ if ($Version -eq $latestWeeklyVersion) {
+ $latest = $true
+ }
+ if ($Version -eq $latestLTSVersion) {
+ $latest = $true
+ }
+ if (!$latest) {
+ Write-Host "WARNING: $JenkinsVersion is neither the lastest Weekly nor the latest LTS version"
+ }
+ return $latest
+}
function Initialize-DockerComposeFile {
param (
@@ -166,6 +197,24 @@ Test-CommandExists 'yq'
# Sanity check
yq --version
+# Add 'lts-' prefix to LTS tags not including Jenkins version
+# Compared to weekly releases, LTS releases include an additional build number in their version
+$releaseLine = 'war'
+# Determine if the current JENKINS_VERSION corresponds to the latest Weekly or LTS version from Artifactory
+$isJenkinsVersionLatest = Test-IsLatestJenkinsRelease -Version $JenkinsVersion
+
+if ($JenkinsVersion.Split('.').Count -eq 3) {
+ $releaseLine = 'war-stable'
+ $env:LATEST_LTS = $isJenkinsVersionLatest
+} else {
+ $env:LATEST_WEEKLY = $isJenkinsVersionLatest
+}
+
+# If there is no WAR_URL set, using get.jenkins.io URL depending on the release line
+if([String]::IsNullOrWhiteSpace($env:WAR_URL)) {
+ $env:WAR_URL = 'https://get.jenkins.io/{0}/{1}/jenkins.war' -f $releaseLine, $JenkinsVersion
+}
+
$dockerComposeFile = 'build-windows_{0}.yaml' -f $ImageType
$baseDockerCmd = 'docker-compose --file={0}' -f $dockerComposeFile
$baseDockerBuildCmd = '{0} build --parallel --pull' -f $baseDockerCmd
@@ -239,6 +288,7 @@ if ($target -eq 'test') {
if ($target -eq 'publish') {
Write-Host '= PUBLISH: push all images and tags'
+
switch($DryRun) {
$true { Write-Host "(dry-run) $baseDockerCmd push" }
$false { Invoke-Expression "$baseDockerCmd push" }LATEST_WEEKLY & LATEST_LTS
1 parent 02a1654 commit d8f927b
1 file changed
+64
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | 45 | | |
61 | 46 | | |
62 | 47 | | |
| |||
121 | 106 | | |
122 | 107 | | |
123 | 108 | | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
124 | 155 | | |
125 | 156 | | |
126 | 157 | | |
| |||
166 | 197 | | |
167 | 198 | | |
168 | 199 | | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
169 | 218 | | |
170 | 219 | | |
171 | 220 | | |
| |||
0 commit comments