Skip to content

Commit f386f3f

Browse files
authored
Merge pull request #17704 from spowelljr/autoUpdateNerdctld
CI: Auto update nerdctld
2 parents c4ae734 + 4329ff0 commit f386f3f

File tree

5 files changed

+129
-0
lines changed

5 files changed

+129
-0
lines changed

Diff for: .github/workflows/update-iso-image-versions.yml

+6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
OLD_CRICTL=$(DEP=crictl make get-dependency-version)
2525
OLD_DOCKER=$(DEP=docker make get-dependency-version)
2626
OLD_NERDCTL=$(DEP=nerdctl make get-dependency-version)
27+
OLD_NERDCTLD=$(DEP=nerdctld make get-dependency-version)
2728
OLD_RUNC=$(DEP=runc make get-dependency-version)
2829
OLD_UBUNTU=$(DEP=ubuntu make get-dependency-version)
2930
make update-buildkit-version
@@ -32,6 +33,7 @@ jobs:
3233
make update-crictl-version
3334
make update-docker-version
3435
make update-nerdctl-version
36+
make update-nerdctld-version
3537
make update-runc-version
3638
make update-ubuntu-version
3739
NEW_BUILDKIT=$(DEP=buildkit make get-dependency-version)
@@ -40,6 +42,7 @@ jobs:
4042
NEW_CRICTL=$(DEP=crictl make get-dependency-version)
4143
NEW_DOCKER=$(DEP=docker make get-dependency-version)
4244
NEW_NERDCTL=$(DEP=nerdctl make get-dependency-version)
45+
NEW_NERDCTLD=$(DEP=nerdctld make get-dependency-version)
4346
NEW_RUNC=$(DEP=runc make get-dependency-version)
4447
NEW_UBUNTU=$(DEP=ubuntu make get-dependency-version)
4548
if [ "$OLD_BUILDKIT" != "$NEW_BUILDKIT" ]; then
@@ -60,6 +63,9 @@ jobs:
6063
if [ "$OLD_NERDCTL" != "$NEW_NERDCTL" ]; then
6164
echo "changelog=https://github.com/containerd/nerdctl/releases/tag/v$NEW_NERDCTL" >> $GITHUB_OUTPUT
6265
fi
66+
if [ "$OLD_NERDCTLD" != "$NEW_NERDCTLD" ]; then
67+
echo "changelog=https://github.com/afbjorklund/nerdctld/releases/tag/v$NEW_NERDCTL" >> $GITHUB_OUTPUT
68+
fi
6369
if [ "$OLD_RUNC" != "$NEW_RUNC" ]; then
6470
echo "changelog=https://github.com/opencontainers/runc/releases/tag/$NEW_RUNC" >> $GITHUB_OUTPUT
6571
fi

Diff for: .github/workflows/update-nerdctld-version.yml

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: "update-nerdctld-version"
2+
on:
3+
workflow_dispatch:
4+
schedule:
5+
# every Monday at around 3 am pacific/10 am UTC
6+
- cron: "0 10 * * 1"
7+
env:
8+
GOPROXY: https://proxy.golang.org
9+
GO_VERSION: '1.21.4'
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
bump-nerdctld-version:
15+
runs-on: ubuntu-20.04
16+
steps:
17+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
18+
- uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
19+
with:
20+
go-version: ${{env.GO_VERSION}}
21+
cache-dependency-path: ./go.sum
22+
- name: Bump nerdctld Version
23+
id: bumpNerdctld
24+
run: |
25+
echo "OLD_VERSION=$(DEP=nerdctld make get-dependency-version)" >> $GITHUB_OUTPUT
26+
make update-nerdctld-version
27+
echo "NEW_VERSION=$(DEP=nerdctld make get-dependency-version)" >> $GITHUB_OUTPUT
28+
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
29+
echo "changes<<EOF" >> $GITHUB_OUTPUT
30+
echo "$(git status --porcelain)" >> $GITHUB_OUTPUT
31+
echo "EOF" >> $GITHUB_OUTPUT
32+
- name: Create PR
33+
id: createPR
34+
if: ${{ steps.bumpNerdctld.outputs.changes != '' }}
35+
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
36+
with:
37+
token: ${{ secrets.MINIKUBE_BOT_PAT }}
38+
commit-message: 'Kicbase: Update nerdctld from ${{ steps.bumpNerdctld.outputs.OLD_VERSION }} to ${{ steps.bumpNerdctld.outputs.NEW_VERSION }}'
39+
committer: minikube-bot <[email protected]>
40+
author: minikube-bot <[email protected]>
41+
branch: auto_bump_nerdctld_version
42+
branch-suffix: short-commit-hash
43+
push-to-fork: minikube-bot/minikube
44+
base: master
45+
delete-branch: true
46+
title: 'Kicbase: Update nerdctld from ${{ steps.bumpNerdctld.outputs.OLD_VERSION }} to ${{ steps.bumpNerdctld.outputs.NEW_VERSION }}'
47+
body: |
48+
The nerdctld project released a [new version](https://github.com/afbjorklund/nerdctld/releases)
49+
50+
This PR was auto-generated by `make update-nerdctld-version` using [update-nerdctld-version.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows/update-nerdctld-version.yml) CI Workflow.
51+
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
52+
if: ${{ steps.bumpNerdctld.outputs.changes != '' }}
53+
with:
54+
github-token: ${{ secrets.MINIKUBE_BOT_PAT }}
55+
script: |
56+
github.rest.issues.createComment({
57+
issue_number: ${{ steps.createPR.outputs.pull-request-number }},
58+
owner: context.repo.owner,
59+
repo: context.repo.repo,
60+
body: 'ok-to-build-image'
61+
})

Diff for: Makefile

+5
Original file line numberDiff line numberDiff line change
@@ -1195,6 +1195,11 @@ update-nvidia-device-plugin-version:
11951195
(cd hack/update/nvidia_device_plugin_version && \
11961196
go run update_nvidia_device_plugin_version.go)
11971197

1198+
.PHONY: update-nerctld-version
1199+
update-nerdctld-version:
1200+
(cd hack/update/nerdctld_version && \
1201+
go run update_nerdctld_version.go)
1202+
11981203
.PHONY: get-dependency-verison
11991204
get-dependency-version:
12001205
@(cd hack/update/get_version && \

Diff for: hack/update/get_version/get_version.go

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ var dependencies = map[string]dependency{
5656
"kong-ingress-controller": {addonsFile, `kong/kubernetes-ingress-controller:(.*)@`},
5757
"metrics-server": {addonsFile, `metrics-server/metrics-server:(.*)@`},
5858
"nerdctl": {"deploy/kicbase/Dockerfile", `NERDCTL_VERSION="(.*)"`},
59+
"nerdctld": {"deploy/kicbase/Dockerfile", `NERDCTLD_VERSION="(.*)"`},
5960
"nvidia-device-plugin": {addonsFile, `nvidia/k8s-device-plugin:(.*)@`},
6061
"registry": {addonsFile, `registry:(.*)@`},
6162
"runc": {"deploy/iso/minikube-iso/package/runc-master/runc-master.mk", `RUNC_MASTER_VERSION = (.*)`},
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/*
2+
Copyright 2023 The Kubernetes Authors All rights reserved.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package main
18+
19+
import (
20+
"context"
21+
"strings"
22+
"time"
23+
24+
"k8s.io/klog/v2"
25+
"k8s.io/minikube/hack/update"
26+
)
27+
28+
var (
29+
schema = map[string]update.Item{
30+
"deploy/kicbase/Dockerfile": {
31+
Replace: map[string]string{
32+
`NERDCTLD_VERSION=.*`: `NERDCTLD_VERSION="{{.Version}}"`,
33+
},
34+
},
35+
}
36+
)
37+
38+
type Data struct {
39+
Version string
40+
}
41+
42+
func main() {
43+
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Minute)
44+
defer cancel()
45+
46+
stable, _, _, err := update.GHReleases(ctx, "afbjorklund", "nerdctld")
47+
if err != nil {
48+
klog.Fatalf("Unable to get stable version: %v", err)
49+
}
50+
51+
version := strings.TrimPrefix(stable.Tag, "v")
52+
53+
data := Data{Version: version}
54+
55+
update.Apply(schema, data)
56+
}

0 commit comments

Comments
 (0)