88 pull_request :
99
1010env :
11- GO_VERSION : 1.21 .x
11+ GO_VERSION : 1.23 .x
1212
1313jobs :
1414 project :
1515 name : Project Checks
16- runs-on : ubuntu-22 .04
16+ runs-on : ubuntu-24 .04
1717 timeout-minutes : 20
1818 steps :
19193434 working-directory : src/github.com/containerd/nerdctl
3535
3636 lint :
37- runs-on : ubuntu-22 .04
37+ runs-on : ubuntu-24 .04
3838 timeout-minutes : 20
3939 steps :
4040@@ -46,15 +46,15 @@ jobs:
4646 check-latest : true
4747 cache : true
4848 - name : golangci-lint
49- uses : golangci/golangci-lint-action@v3.7 .0
49+ uses : golangci/golangci-lint-action@v6.1 .0
5050 with :
51- version : v1.55.2
51+ version : v1.60.1
5252 args : --verbose
5353 - name : yamllint-lint
5454 run : yamllint .
5555
5656 test-unit :
57- runs-on : ubuntu-22 .04
57+ runs-on : ubuntu-24 .04
5858 timeout-minutes : 20
5959 steps :
6060@@ -74,16 +74,20 @@ jobs:
7474 strategy :
7575 fail-fast : false
7676 matrix :
77- # ubuntu-20.04: cgroup v1, ubuntu-22.04: cgroup v2
77+ # ubuntu-20.04: cgroup v1, ubuntu-22.04 and later : cgroup v2
7878 include :
7979 - ubuntu : 20.04
8080 containerd : v1.6.31
8181 - ubuntu : 20.04
82- containerd : v1.7.16
82+ containerd : v1.7.22
8383 - ubuntu : 22.04
84- containerd : v1.7.16
84+ containerd : v1.7.22
8585 - ubuntu : 22.04
8686 containerd : main
87+ - ubuntu : 24.04
88+ containerd : v1.7.22
89+ - ubuntu : 24.04
90+ containerd : main
8791 env :
8892 UBUNTU_VERSION : " ${{ matrix.ubuntu }}"
8993 CONTAINERD_VERSION : " ${{ matrix.containerd }}"
@@ -110,10 +114,10 @@ jobs:
110114 strategy :
111115 fail-fast : false
112116 matrix :
113- # ubuntu-20.04: cgroup v1, ubuntu-22.04: cgroup v2
117+ # ubuntu-20.04: cgroup v1, ubuntu-22.04 and later : cgroup v2
114118 include :
115- - ubuntu : 22 .04
116- containerd : v1.7.16
119+ - ubuntu : 24 .04
120+ containerd : v1.7.22
117121 env :
118122 UBUNTU_VERSION : " ${{ matrix.ubuntu }}"
119123 CONTAINERD_VERSION : " ${{ matrix.containerd }}"
@@ -154,47 +158,78 @@ jobs:
154158 strategy :
155159 fail-fast : false
156160 matrix :
157- # ubuntu-22 .04: cgroup v1, ubuntu-22.04: cgroup v2
161+ # ubuntu-20 .04: cgroup v1, ubuntu-22.04 and later : cgroup v2
158162 include :
159163 - ubuntu : 20.04
160164 containerd : v1.6.31
161165 rootlesskit : v1.1.1
162166 target : test-integration-rootless
163167 - ubuntu : 20.04
164- containerd : v1.7.16
165- rootlesskit : v2.0.2
168+ containerd : v1.7.22
169+ rootlesskit : v2.3.1
166170 target : test-integration-rootless
167171 - ubuntu : 22.04
168- containerd : v1.7.16
172+ containerd : v1.7.22
169173 rootlesskit : v1.1.1
170174 target : test-integration-rootless
171175 - ubuntu : 22.04
172- containerd : main
173- rootlesskit : v2.0.2
176+ containerd : main # v2.0.0-rc.X
177+ rootlesskit : v2.3.1
178+ target : test-integration-rootless
179+ - ubuntu : 24.04
180+ containerd : v1.7.22
181+ rootlesskit : v1.1.1
182+ target : test-integration-rootless
183+ - ubuntu : 24.04
184+ containerd : main # v2.0.0-rc.X
185+ rootlesskit : v2.3.1
174186 target : test-integration-rootless
175187 - ubuntu : 20.04
176188 containerd : v1.6.31
177189 rootlesskit : v1.1.1
178190 target : test-integration-rootless-port-slirp4netns
179191 - ubuntu : 20.04
180- containerd : v1.7.16
181- rootlesskit : v2.0.2
192+ containerd : v1.7.22
193+ rootlesskit : v2.3.1
182194 target : test-integration-rootless-port-slirp4netns
183195 - ubuntu : 22.04
184- containerd : v1.7.16
196+ containerd : v1.7.22
185197 rootlesskit : v1.1.1
186198 target : test-integration-rootless-port-slirp4netns
187199 - ubuntu : 22.04
188- containerd : main
189- rootlesskit : v2.0.2
200+ containerd : main # v2.0.0-rc.X
201+ rootlesskit : v2.3.1
202+ target : test-integration-rootless-port-slirp4netns
203+ - ubuntu : 24.04
204+ containerd : v1.7.22
205+ rootlesskit : v1.1.1
206+ target : test-integration-rootless-port-slirp4netns
207+ - ubuntu : 24.04
208+ containerd : main # v2.0.0-rc.X
209+ rootlesskit : v2.3.1
190210 target : test-integration-rootless-port-slirp4netns
191211 env :
192212 UBUNTU_VERSION : " ${{ matrix.ubuntu }}"
193213 CONTAINERD_VERSION : " ${{ matrix.containerd }}"
194214 ROOTLESSKIT_VERSION : " ${{ matrix.rootlesskit }}"
195215 TEST_TARGET : " ${{ matrix.target }}"
196216 steps :
197- 217+ - name : " Set up AppArmor"
218+ if : matrix.ubuntu == '24.04'
219+ run : |
220+ cat <<EOT | sudo tee "/etc/apparmor.d/usr.local.bin.rootlesskit"
221+ abi <abi/4.0>,
222+ include <tunables/global>
223+
224+ /usr/local/bin/rootlesskit flags=(unconfined) {
225+ userns,
226+
227+ # Site-specific additions and overrides. See local/README for details.
228+ include if exists <local/usr.local.bin.rootlesskit>
229+ }
230+ EOT
231+ sudo systemctl restart apparmor.service
232+ 198233 with :
199234 fetch-depth : 1
200235 - name : " Register QEMU (tonistiigi/binfmt)"
@@ -205,11 +240,11 @@ jobs:
205240 run : docker run -t --rm --privileged -e WORKAROUND_ISSUE_622=1 ${TEST_TARGET}
206241
207242 cross :
208- runs-on : ubuntu-22 .04
243+ runs-on : ubuntu-24 .04
209244 timeout-minutes : 40
210245 strategy :
211246 matrix :
212- go-version : ["1.21 .x", "1.22 .x"]
247+ go-version : ["1.22 .x", "1.23 .x"]
213248 steps :
214249215250 with :
@@ -223,8 +258,8 @@ jobs:
223258 run : GO_VERSION="$(echo ${{ matrix.go-version }} | sed -e s/.x//)" make artifacts
224259
225260 test-integration-docker-compatibility :
226- runs-on : ubuntu-22.04
227- timeout-minutes : 30
261+ runs-on : ubuntu-22.04 # TODO: ubuntu-24.04
262+ timeout-minutes : 45
228263 steps :
229264230265 with :
@@ -234,15 +269,25 @@ jobs:
234269 go-version : ${{ env.GO_VERSION }}
235270 cache : true
236271 check-latest : true
237- - name : " Enable BuildKit "
272+ - name : " Install Docker v24 "
238273 run : |
239274 set -eux -o pipefail
275+ # Uninstall the preinstalled Docker
276+ sudo apt-get remove docker-* containerd.io
240277 # Enable BuildKit explicitly
241278 sudo apt-get install -y moreutils
242279 cat /etc/docker/daemon.json
243280 jq '.features.buildkit = true' </etc/docker/daemon.json | sudo sponge /etc/docker/daemon.json
244281 cat /etc/docker/daemon.json
245- sudo systemctl restart docker
282+ # Download Docker packages
283+ curl -OSL https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/containerd.io_1.6.33-1_amd64.deb
284+ curl -OSL https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-ce_24.0.9-1~ubuntu.22.04~jammy_amd64.deb
285+ curl -OSL https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-ce-cli_24.0.9-1~ubuntu.22.04~jammy_amd64.deb
286+ curl -OSL https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-buildx-plugin_0.13.1-1~ubuntu.22.04~jammy_amd64.deb
287+ curl -OSL https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/docker-compose-plugin_2.25.0-1~ubuntu.22.04~jammy_amd64.deb
288+ # Install Docker
289+ sudo apt-get install -y ./*.deb
290+ rm -f ./*.deb
246291 # Print docker info
247292 docker info
248293 docker version
@@ -276,25 +321,24 @@ jobs:
276321277322 with :
278323 repository : containerd/containerd
279- ref : v1.7.16
324+ ref : v1.7.22
280325 path : containerd
281326 fetch-depth : 1
282327 - name : " Set up CNI"
283328 working-directory : containerd
284329 run : GOPATH=$(go env GOPATH) script/setup/install-cni-windows
285330 - name : " Set up containerd"
286331 env :
287- ctrdVersion : 1.7.16
332+ ctrdVersion : 1.7.22
288333 run : powershell hack/configure-windows-ci.ps1
289334 # TODO: Run unit tests
290335 - name : " Run integration tests"
291336 run : go test -v ./cmd/...
292337
293338 test-integration-freebsd :
294339 name : FreeBSD
295- # "Larger" runner is needed for nested virtualization
296- # https://github.com/organizations/containerd/settings/actions/runners
297- runs-on : ubuntu-latest-4-cores
340+ # ubuntu-24.04 lacks the vagrant package
341+ runs-on : ubuntu-22.04
298342 timeout-minutes : 20
299343
300344 steps :
0 commit comments