@@ -54,109 +54,109 @@ jobs:
54
54
--cache-from type=gha,scope=${ARCH}-${CONTAINERD_VERSION} \
55
55
--target build-dependencies --build-arg CONTAINERD_VERSION=${CONTAINERD_VERSION} .
56
56
57
- test-unit :
58
- # FIXME:
59
- # Supposed to work: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions#example-returning-a-json-data-type
60
- # Apparently does not
61
- # timeout-minutes: ${{ fromJSON(env.SHORT_TIMEOUT) }}
62
- timeout-minutes : 5
63
- name : unit | ${{ matrix.goos }}
64
- runs-on : " ${{ matrix.os }}"
65
- defaults :
66
- run :
67
- shell : bash
68
- strategy :
69
- matrix :
70
- include :
71
- - os : windows-2022
72
- goos : windows
73
- - os : ubuntu-24.04
74
- goos : linux
75
- steps :
76
- - uses : actions/checkout@v4.2.2
77
- with :
78
- fetch-depth : 1
79
- - uses : actions/setup-go@v5
80
- with :
81
- go-version : ${{ env.GO_VERSION }}
82
- check-latest : true
83
- cache : true
84
- - if : ${{ matrix.goos=='windows' }}
85
- uses : actions/checkout@v4.2.2
86
- with :
87
- repository : containerd/containerd
88
- ref : v1.7.24
89
- path : containerd
90
- fetch-depth : 1
91
- - if : ${{ matrix.goos=='windows' }}
92
- name : " Set up CNI"
93
- working-directory : containerd
94
- run : GOPATH=$(go env GOPATH) script/setup/install-cni-windows
95
- - name : " Run unit tests"
96
- run : make test-unit
57
+ # test-unit:
58
+ # # FIXME:
59
+ # # Supposed to work: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions#example-returning-a-json-data-type
60
+ # # Apparently does not
61
+ # # timeout-minutes: ${{ fromJSON(env.SHORT_TIMEOUT) }}
62
+ # timeout-minutes: 5
63
+ # name: unit | ${{ matrix.goos }}
64
+ # runs-on: "${{ matrix.os }}"
65
+ # defaults:
66
+ # run:
67
+ # shell: bash
68
+ # strategy:
69
+ # matrix:
70
+ # include:
71
+ # - os: windows-2022
72
+ # goos: windows
73
+ # - os: ubuntu-24.04
74
+ # goos: linux
75
+ # steps:
76
+ # - uses: actions/checkout@v4.2.2
77
+ # with:
78
+ # fetch-depth: 1
79
+ # - uses: actions/setup-go@v5
80
+ # with:
81
+ # go-version: ${{ env.GO_VERSION }}
82
+ # check-latest: true
83
+ # cache: true
84
+ # - if: ${{ matrix.goos=='windows' }}
85
+ # uses: actions/checkout@v4.2.2
86
+ # with:
87
+ # repository: containerd/containerd
88
+ # ref: v1.7.24
89
+ # path: containerd
90
+ # fetch-depth: 1
91
+ # - if: ${{ matrix.goos=='windows' }}
92
+ # name: "Set up CNI"
93
+ # working-directory: containerd
94
+ # run: GOPATH=$(go env GOPATH) script/setup/install-cni-windows
95
+ # - name: "Run unit tests"
96
+ # run: make test-unit
97
97
98
- test-integration :
99
- needs : build-dependencies
100
- timeout-minutes : 30
101
- name : rootful | ${{ matrix.containerd }} | ${{ matrix.runner }}
102
- runs-on : " ${{ matrix.runner }}"
103
- strategy :
104
- fail-fast : false
105
- matrix :
106
- # ubuntu-20.04: cgroup v1, ubuntu-22.04 and later: cgroup v2
107
- include :
108
- - ubuntu : 20.04
109
- containerd : v1.6.36
110
- runner : " ubuntu-20.04"
111
- arch : amd64
112
- - ubuntu : 22.04
113
- containerd : v1.7.24
114
- runner : " ubuntu-22.04"
115
- arch : amd64
116
- - ubuntu : 24.04
117
- containerd : v2.0.0
118
- runner : " ubuntu-24.04"
119
- arch : amd64
120
- - ubuntu : 24.04
121
- containerd : v2.0.0
122
- runner : arm64-8core-32gb
123
- arch : arm64
124
- env :
125
- CONTAINERD_VERSION : " ${{ matrix.containerd }}"
126
- ARCH : " ${{ matrix.arch }}"
127
- UBUNTU_VERSION : " ${{ matrix.ubuntu }}"
128
- steps :
129
- - uses : actions/checkout@v4.2.2
130
- with :
131
- fetch-depth : 1
132
- - name : " Expose GitHub Runtime variables for gha"
133
- uses : crazy-max/ghaction-github-runtime@v3
134
- - name : " Prepare integration test environment"
135
- run : |
136
- docker buildx create --name with-gha --use
137
- docker buildx build \
138
- --output=type=docker \
139
- --cache-from type=gha,scope=${ARCH}-${CONTAINERD_VERSION} \
140
- -t test-integration --target test-integration --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg CONTAINERD_VERSION=${CONTAINERD_VERSION} .
141
- - name : " Remove snap loopback devices (conflicts with our loopback devices in TestRunDevice)"
142
- run : |
143
- sudo systemctl disable --now snapd.service snapd.socket
144
- sudo apt-get purge -y snapd
145
- sudo losetup -Dv
146
- sudo losetup -lv
147
- - name : " Register QEMU (tonistiigi/binfmt)"
148
- run : |
149
- # `--install all` will only install emulation for architectures that cannot be natively executed
150
- # Since some arm64 platforms do provide native fallback execution for 32 bits,
151
- # armv7 emulation may or may not be installed, causing variance in the result of `uname -m`.
152
- # To avoid that, we explicitly list the architectures we do want emulation for.
153
- docker run --privileged --rm tonistiigi/binfmt --install linux/amd64
154
- docker run --privileged --rm tonistiigi/binfmt --install linux/arm64
155
- docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7
156
- - name : " Run integration tests"
157
- run : docker run -t --rm --privileged test-integration ./hack/test-integration.sh -test.only-flaky=false
158
- - name : " Run integration tests (flaky)"
159
- run : docker run -t --rm --privileged test-integration ./hack/test-integration.sh -test.only-flaky=true
98
+ # test-integration:
99
+ # needs: build-dependencies
100
+ # timeout-minutes: 30
101
+ # name: rootful | ${{ matrix.containerd }} | ${{ matrix.runner }}
102
+ # runs-on: "${{ matrix.runner }}"
103
+ # strategy:
104
+ # fail-fast: false
105
+ # matrix:
106
+ # # ubuntu-20.04: cgroup v1, ubuntu-22.04 and later: cgroup v2
107
+ # include:
108
+ # - ubuntu: 20.04
109
+ # containerd: v1.6.36
110
+ # runner: "ubuntu-20.04"
111
+ # arch: amd64
112
+ # - ubuntu: 22.04
113
+ # containerd: v1.7.24
114
+ # runner: "ubuntu-22.04"
115
+ # arch: amd64
116
+ # - ubuntu: 24.04
117
+ # containerd: v2.0.0
118
+ # runner: "ubuntu-24.04"
119
+ # arch: amd64
120
+ # - ubuntu: 24.04
121
+ # containerd: v2.0.0
122
+ # runner: arm64-8core-32gb
123
+ # arch: arm64
124
+ # env:
125
+ # CONTAINERD_VERSION: "${{ matrix.containerd }}"
126
+ # ARCH: "${{ matrix.arch }}"
127
+ # UBUNTU_VERSION: "${{ matrix.ubuntu }}"
128
+ # steps:
129
+ # - uses: actions/checkout@v4.2.2
130
+ # with:
131
+ # fetch-depth: 1
132
+ # - name: "Expose GitHub Runtime variables for gha"
133
+ # uses: crazy-max/ghaction-github-runtime@v3
134
+ # - name: "Prepare integration test environment"
135
+ # run: |
136
+ # docker buildx create --name with-gha --use
137
+ # docker buildx build \
138
+ # --output=type=docker \
139
+ # --cache-from type=gha,scope=${ARCH}-${CONTAINERD_VERSION} \
140
+ # -t test-integration --target test-integration --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg CONTAINERD_VERSION=${CONTAINERD_VERSION} .
141
+ # - name: "Remove snap loopback devices (conflicts with our loopback devices in TestRunDevice)"
142
+ # run: |
143
+ # sudo systemctl disable --now snapd.service snapd.socket
144
+ # sudo apt-get purge -y snapd
145
+ # sudo losetup -Dv
146
+ # sudo losetup -lv
147
+ # - name: "Register QEMU (tonistiigi/binfmt)"
148
+ # run: |
149
+ # # `--install all` will only install emulation for architectures that cannot be natively executed
150
+ # # Since some arm64 platforms do provide native fallback execution for 32 bits,
151
+ # # armv7 emulation may or may not be installed, causing variance in the result of `uname -m`.
152
+ # # To avoid that, we explicitly list the architectures we do want emulation for.
153
+ # docker run --privileged --rm tonistiigi/binfmt --install linux/amd64
154
+ # docker run --privileged --rm tonistiigi/binfmt --install linux/arm64
155
+ # docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7
156
+ # - name: "Run integration tests"
157
+ # run: docker run -t --rm --privileged test-integration ./hack/test-integration.sh -test.only-flaky=false
158
+ # - name: "Run integration tests (flaky)"
159
+ # run: docker run -t --rm --privileged test-integration ./hack/test-integration.sh -test.only-flaky=true
160
160
161
161
# test-integration-ipv6:
162
162
# needs: build-dependencies
@@ -219,110 +219,110 @@ jobs:
219
219
# # is safe and has no side effects on others.
220
220
# run: docker run --network host -t --rm --privileged test-integration ./hack/test-integration.sh -test.only-ipv6
221
221
222
- test-integration-rootless :
223
- needs : build-dependencies
224
- timeout-minutes : 30
225
- name : " ${{ matrix.target }} | ${{ matrix.containerd }} | ${{ matrix.rootlesskit }} | ${{ matrix.ubuntu }}"
226
- runs-on : " ubuntu-${{ matrix.ubuntu }}"
227
- strategy :
228
- fail-fast : false
229
- matrix :
230
- # ubuntu-20.04: cgroup v1, ubuntu-22.04 and later: cgroup v2
231
- include :
232
- - ubuntu : 20.04
233
- containerd : v1.6.36
234
- rootlesskit : v1.1.1 # Deprecated
235
- target : rootless
236
- arch : amd64
237
- - ubuntu : 22.04
238
- containerd : v1.7.24
239
- rootlesskit : v2.3.1
240
- target : rootless
241
- arch : amd64
242
- - ubuntu : 24.04
243
- containerd : v2.0.0
244
- rootlesskit : v2.3.1
245
- target : rootless
246
- arch : amd64
247
- - ubuntu : 24.04
248
- containerd : v1.7.24
249
- rootlesskit : v2.3.1
250
- target : rootless-port-slirp4netns
251
- arch : amd64
252
- env :
253
- CONTAINERD_VERSION : " ${{ matrix.containerd }}"
254
- ARCH : " ${{ matrix.arch }}"
255
- UBUNTU_VERSION : " ${{ matrix.ubuntu }}"
256
- ROOTLESSKIT_VERSION : " ${{ matrix.rootlesskit }}"
257
- TEST_TARGET : " test-integration-${{ matrix.target }}"
258
- steps :
259
- - name : " Set up AppArmor"
260
- if : matrix.ubuntu == '24.04'
261
- run : |
262
- cat <<EOT | sudo tee "/etc/apparmor.d/usr.local.bin.rootlesskit"
263
- abi <abi/4.0>,
264
- include <tunables/global>
222
+ # test-integration-rootless:
223
+ # needs: build-dependencies
224
+ # timeout-minutes: 30
225
+ # name: "${{ matrix.target }} | ${{ matrix.containerd }} | ${{ matrix.rootlesskit }} | ${{ matrix.ubuntu }}"
226
+ # runs-on: "ubuntu-${{ matrix.ubuntu }}"
227
+ # strategy:
228
+ # fail-fast: false
229
+ # matrix:
230
+ # # ubuntu-20.04: cgroup v1, ubuntu-22.04 and later: cgroup v2
231
+ # include:
232
+ # - ubuntu: 20.04
233
+ # containerd: v1.6.36
234
+ # rootlesskit: v1.1.1 # Deprecated
235
+ # target: rootless
236
+ # arch: amd64
237
+ # - ubuntu: 22.04
238
+ # containerd: v1.7.24
239
+ # rootlesskit: v2.3.1
240
+ # target: rootless
241
+ # arch: amd64
242
+ # - ubuntu: 24.04
243
+ # containerd: v2.0.0
244
+ # rootlesskit: v2.3.1
245
+ # target: rootless
246
+ # arch: amd64
247
+ # - ubuntu: 24.04
248
+ # containerd: v1.7.24
249
+ # rootlesskit: v2.3.1
250
+ # target: rootless-port-slirp4netns
251
+ # arch: amd64
252
+ # env:
253
+ # CONTAINERD_VERSION: "${{ matrix.containerd }}"
254
+ # ARCH: "${{ matrix.arch }}"
255
+ # UBUNTU_VERSION: "${{ matrix.ubuntu }}"
256
+ # ROOTLESSKIT_VERSION: "${{ matrix.rootlesskit }}"
257
+ # TEST_TARGET: "test-integration-${{ matrix.target }}"
258
+ # steps:
259
+ # - name: "Set up AppArmor"
260
+ # if: matrix.ubuntu == '24.04'
261
+ # run: |
262
+ # cat <<EOT | sudo tee "/etc/apparmor.d/usr.local.bin.rootlesskit"
263
+ # abi <abi/4.0>,
264
+ # include <tunables/global>
265
265
266
- /usr/local/bin/rootlesskit flags=(unconfined) {
267
- userns,
266
+ # /usr/local/bin/rootlesskit flags=(unconfined) {
267
+ # userns,
268
268
269
- # Site-specific additions and overrides. See local/README for details.
270
- include if exists <local/usr.local.bin.rootlesskit>
271
- }
272
- EOT
273
- sudo systemctl restart apparmor.service
274
- - uses : actions/checkout@v4.2.2
275
- with :
276
- fetch-depth : 1
277
- - name : " Register QEMU (tonistiigi/binfmt)"
278
- run : |
279
- # `--install all` will only install emulation for architectures that cannot be natively executed
280
- # Since some arm64 platforms do provide native fallback execution for 32 bits,
281
- # armv7 emulation may or may not be installed, causing variance in the result of `uname -m`.
282
- # To avoid that, we explicitly list the architectures we do want emulation for.
283
- docker run --privileged --rm tonistiigi/binfmt --install linux/amd64
284
- docker run --privileged --rm tonistiigi/binfmt --install linux/arm64
285
- docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7
286
- - name : " Expose GitHub Runtime variables for gha"
287
- uses : crazy-max/ghaction-github-runtime@v3
288
- - name : " Prepare (network driver=slirp4netns, port driver=builtin)"
289
- run : |
290
- docker buildx create --name with-gha --use
291
- docker buildx build \
292
- --output=type=docker \
293
- --cache-from type=gha,scope=${ARCH}-${CONTAINERD_VERSION} \
294
- -t ${TEST_TARGET} --target ${TEST_TARGET} --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg CONTAINERD_VERSION=${CONTAINERD_VERSION} --build-arg ROOTLESSKIT_VERSION=${ROOTLESSKIT_VERSION} .
295
- - name : " Disable BuildKit for RootlessKit v1 (workaround for issue #622)"
296
- run : |
297
- # https://github.com/containerd/nerdctl/issues/622
298
- WORKAROUND_ISSUE_622=
299
- if echo "${ROOTLESSKIT_VERSION}" | grep -q v1; then
300
- WORKAROUND_ISSUE_622=1
301
- fi
302
- echo "WORKAROUND_ISSUE_622=${WORKAROUND_ISSUE_622}" >> "$GITHUB_ENV"
303
- - name : " Test (network driver=slirp4netns, port driver=builtin)"
304
- run : docker run -t --rm --privileged -e WORKAROUND_ISSUE_622=${WORKAROUND_ISSUE_622} ${TEST_TARGET} /test-integration-rootless.sh ./hack/test-integration.sh -test.only-flaky=false
305
- - name : " Test (network driver=slirp4netns, port driver=builtin) (flaky)"
306
- run : docker run -t --rm --privileged -e WORKAROUND_ISSUE_622=${WORKAROUND_ISSUE_622} ${TEST_TARGET} /test-integration-rootless.sh ./hack/test-integration.sh -test.only-flaky=true
269
+ # # Site-specific additions and overrides. See local/README for details.
270
+ # include if exists <local/usr.local.bin.rootlesskit>
271
+ # }
272
+ # EOT
273
+ # sudo systemctl restart apparmor.service
274
+ # - uses: actions/checkout@v4.2.2
275
+ # with:
276
+ # fetch-depth: 1
277
+ # - name: "Register QEMU (tonistiigi/binfmt)"
278
+ # run: |
279
+ # # `--install all` will only install emulation for architectures that cannot be natively executed
280
+ # # Since some arm64 platforms do provide native fallback execution for 32 bits,
281
+ # # armv7 emulation may or may not be installed, causing variance in the result of `uname -m`.
282
+ # # To avoid that, we explicitly list the architectures we do want emulation for.
283
+ # docker run --privileged --rm tonistiigi/binfmt --install linux/amd64
284
+ # docker run --privileged --rm tonistiigi/binfmt --install linux/arm64
285
+ # docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7
286
+ # - name: "Expose GitHub Runtime variables for gha"
287
+ # uses: crazy-max/ghaction-github-runtime@v3
288
+ # - name: "Prepare (network driver=slirp4netns, port driver=builtin)"
289
+ # run: |
290
+ # docker buildx create --name with-gha --use
291
+ # docker buildx build \
292
+ # --output=type=docker \
293
+ # --cache-from type=gha,scope=${ARCH}-${CONTAINERD_VERSION} \
294
+ # -t ${TEST_TARGET} --target ${TEST_TARGET} --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg CONTAINERD_VERSION=${CONTAINERD_VERSION} --build-arg ROOTLESSKIT_VERSION=${ROOTLESSKIT_VERSION} .
295
+ # - name: "Disable BuildKit for RootlessKit v1 (workaround for issue #622)"
296
+ # run: |
297
+ # # https://github.com/containerd/nerdctl/issues/622
298
+ # WORKAROUND_ISSUE_622=
299
+ # if echo "${ROOTLESSKIT_VERSION}" | grep -q v1; then
300
+ # WORKAROUND_ISSUE_622=1
301
+ # fi
302
+ # echo "WORKAROUND_ISSUE_622=${WORKAROUND_ISSUE_622}" >> "$GITHUB_ENV"
303
+ # - name: "Test (network driver=slirp4netns, port driver=builtin)"
304
+ # run: docker run -t --rm --privileged -e WORKAROUND_ISSUE_622=${WORKAROUND_ISSUE_622} ${TEST_TARGET} /test-integration-rootless.sh ./hack/test-integration.sh -test.only-flaky=false
305
+ # - name: "Test (network driver=slirp4netns, port driver=builtin) (flaky)"
306
+ # run: docker run -t --rm --privileged -e WORKAROUND_ISSUE_622=${WORKAROUND_ISSUE_622} ${TEST_TARGET} /test-integration-rootless.sh ./hack/test-integration.sh -test.only-flaky=true
307
307
308
- build :
309
- timeout-minutes : 5
310
- name : " build | ${{ matrix.go-version }}"
311
- runs-on : ubuntu-24.04
312
- strategy :
313
- matrix :
314
- go-version : ["1.22.x", "1.23.x"]
315
- steps :
316
- - uses : actions/checkout@v4.2.2
317
- with :
318
- fetch-depth : 1
319
- - uses : actions/setup-go@v5
320
- with :
321
- go-version : ${{ matrix.go-version }}
322
- cache : true
323
- check-latest : true
324
- - name : " build"
325
- run : GO_VERSION="$(echo ${{ matrix.go-version }} | sed -e s/.x//)" make binaries
308
+ # build:
309
+ # timeout-minutes: 5
310
+ # name: "build | ${{ matrix.go-version }}"
311
+ # runs-on: ubuntu-24.04
312
+ # strategy:
313
+ # matrix:
314
+ # go-version: ["1.22.x", "1.23.x"]
315
+ # steps:
316
+ # - uses: actions/checkout@v4.2.2
317
+ # with:
318
+ # fetch-depth: 1
319
+ # - uses: actions/setup-go@v5
320
+ # with:
321
+ # go-version: ${{ matrix.go-version }}
322
+ # cache: true
323
+ # check-latest: true
324
+ # - name: "build"
325
+ # run: GO_VERSION="$(echo ${{ matrix.go-version }} | sed -e s/.x//)" make binaries
326
326
327
327
test-integration-docker-compatibility :
328
328
timeout-minutes : 30
0 commit comments