Skip to content

Commit 92978df

Browse files
committed
Fix k3s/k0s version getters
Splits the version into minor, patch adn revision and compares them properly to obtain not only the latest patch but also the highest revision for a given patch Signed-off-by: Itxaka <[email protected]>
1 parent 50b3c61 commit 92978df

File tree

2 files changed

+36
-22
lines changed

2 files changed

+36
-22
lines changed

.github/workflows/release-arm.yaml

+9-5
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,17 @@ jobs:
7272
run: |
7373
kubernetes_versions=$(curl -s https://api.github.com/repos/k3s-io/k3s/releases | jq -r '
7474
[.[] | select(.prerelease == false and .draft == false and (.tag_name | test("rc") | not)) | .tag_name]
75-
| map(select(test("^v[0-9]+\\.[0-9]+\\.[0-9]+\\+k3s[0-9]+$")))
76-
| map({version: ., minor: (split(".")[0:2] | join("."))})
75+
| map({
76+
version: .,
77+
minor: (split(".")[1:2]|join("")),
78+
patch: (split(".")[2:3]|join("")|split("+")[0]),
79+
revision: (split("+k3s")[1])
80+
})
7781
| group_by(.minor)
78-
| map(max_by(.version))
79-
| sort_by(.version)
82+
| map(sort_by([(.patch | tonumber), (.revision | tonumber)]) | reverse | .[0])
83+
| sort_by(.minor | tonumber)
8084
| reverse
81-
| .[:3]
85+
| .[0:3]
8286
| map(.version)
8387
' | jq -c '.')
8488
echo "kubernetes_versions=$kubernetes_versions" >> $GITHUB_OUTPUT

.github/workflows/release.yaml

+27-17
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,18 @@ jobs:
9696
kubernetes_versions=$(curl -s https://api.github.com/repos/k3s-io/k3s/releases | jq -r '
9797
[.[] | select(.prerelease == false and .draft == false and (.tag_name | test("rc") | not)) | .tag_name]
9898
| map(select(test("^v[0-9]+\\.[0-9]+\\.[0-9]+\\+k3s[0-9]+$")))
99-
| map({version: ., minor: (split(".")[0:2] | join("."))})
100-
| group_by(.minor)
101-
| map(max_by(.version))
102-
| sort_by(.version)
103-
| reverse
104-
| .[:3]
105-
| map(.version)
99+
| map({
100+
version: .,
101+
minor: (split(".")[1:2]|join("")),
102+
patch: (split(".")[2:3]|join("")|split("+")[0]),
103+
revision: (split("+k3s")[1])
104+
})
105+
| group_by(.minor)
106+
| map(sort_by([(.patch | tonumber), (.revision | tonumber)]) | reverse | .[0])
107+
| sort_by(.minor | tonumber)
108+
| reverse
109+
| .[0:3]
110+
| map(.version)
106111
' | jq -c '.')
107112
echo "kubernetes_versions=$kubernetes_versions" >> $GITHUB_OUTPUT
108113
get-k0s-versions:
@@ -116,16 +121,21 @@ jobs:
116121
id: get-k0s-releases
117122
run: |
118123
kubernetes_versions=$(curl -s https://api.github.com/repos/k0sproject/k0s/releases | jq -r '
119-
[.[] | select(.prerelease == false and .draft == false and (.tag_name | test("rc") | not)) | .tag_name]
120-
| map(select(test("^v[0-9]+\\.[0-9]+\\.[0-9]+\\+k0s\\.[0-9]+$")))
121-
| map({version: ., minor: (split(".")[0:2] | join("."))})
122-
| group_by(.minor)
123-
| map(max_by(.version))
124-
| sort_by(.version)
125-
| reverse
126-
| .[:3]
127-
| map(.version)
128-
' | jq -c '.')
124+
[.[] | select(.prerelease == false and .draft == false and (.tag_name | test("rc") | not)) | .tag_name]
125+
| map(select(test("^v[0-9]+\\.[0-9]+\\.[0-9]+\\+k0s\\.[0-9]+$")))
126+
| map({
127+
version: .,
128+
minor: (split(".")[1:2]|join("")),
129+
patch: (split(".")[2:3]|join("")|split("+")[0]),
130+
revision: (split("+k0s.")[1])
131+
})
132+
| group_by(.minor)
133+
| map(sort_by([(.patch | tonumber), (.revision | tonumber)]) | reverse | .[0])
134+
| sort_by(.minor | tonumber)
135+
| reverse
136+
| .[0:3]
137+
| map(.version)
138+
'| jq -c '.')
129139
echo "kubernetes_versions=$kubernetes_versions" >> $GITHUB_OUTPUT
130140
build-standard-k3s:
131141
uses: ./.github/workflows/reusable-release.yaml

0 commit comments

Comments
 (0)