Skip to content

Commit fdd97d7

Browse files
committed
[testing] Add test
1 parent fff5d9e commit fdd97d7

File tree

3 files changed

+96
-12
lines changed

3 files changed

+96
-12
lines changed

.cirrus.yml

+29-12
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
1-
freebsd_instance:
2-
image_family: freebsd-13-0
1+
#freebsd_instance:
2+
# image_family: freebsd-13-0
3+
#
4+
#task:
5+
# name: test-freebsd-amd64
6+
# env:
7+
# NERDCTL_RUN_ARGS: --net none knast/freebsd:13-STABLE echo "Nerdctl is up and running."
8+
# install_script:
9+
# - pkg install -y go containerd runj
10+
# - daemon -o containerd.out containerd
11+
# test_script:
12+
# - go test -v ./pkg/...
13+
# - cd cmd/nerdctl
14+
# - sudo go run . run $NERDCTL_RUN_ARGS | grep running
315

4-
task:
5-
name: test-freebsd-amd64
16+
docker_builder:
17+
name: windows
18+
platform: windows
19+
os_version: 2019
620
env:
7-
NERDCTL_RUN_ARGS: --net none knast/freebsd:13-STABLE echo "Nerdctl is up and running."
8-
install_script:
9-
- pkg install -y go containerd runj
10-
- daemon -o containerd.out containerd
11-
test_script:
12-
- go test -v ./pkg/...
13-
- cd cmd/nerdctl
14-
- sudo go run . run $NERDCTL_RUN_ARGS | grep running
21+
CGO_ENABLED: 0
22+
GOTMPDIR: C:\\Windows\\TEMP\\cirrus-ci-build\\gotmp
23+
TEMP: C:\\Windows\\TEMP\\cirrus-ci-build\\tempfiles
24+
build_script:
25+
- mkdir %GOTMPDIR%
26+
- mkdir %TEMP%
27+
- powershell hack/configure-windows-ci.ps1
28+
- refreshenv
29+
- go install .\cmd\nerdctl\
30+
- echo %TEMP%
31+
- go test -v -run ^\QTestRunEnvFile\E$ ./cmd/...

hack/configure-windows-ci.ps1

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
$ErrorActionPreference = "Stop"
2+
3+
#install golang
4+
choco install --limitoutput --no-progress -y golang
5+
refreshenv
6+
7+
#install containerd
8+
$Version="1.5.7"
9+
curl.exe -L https://github.com/containerd/containerd/releases/download/v$Version/containerd-$Version-windows-amd64.tar.gz -o containerd-windows-amd64.tar.gz
10+
tar xvf containerd-windows-amd64.tar.gz
11+
mkdir -force "$Env:ProgramFiles\containerd"
12+
mv ./bin/* "$Env:ProgramFiles\containerd"
13+
14+
& $Env:ProgramFiles\containerd\containerd.exe config default | Out-File "$Env:ProgramFiles\containerd\config.toml" -Encoding ascii
15+
& $Env:ProgramFiles\containerd\containerd.exe --register-service
16+
Start-Service containerd
17+
18+
#configure cni
19+
mkdir -force "$Env:ProgramFiles\containerd\cni\bin"
20+
mkdir -force "$Env:ProgramFiles\containerd\cni\conf"
21+
curl.exe -LO https://github.com/microsoft/windows-container-networking/releases/download/v0.2.0/windows-container-networking-cni-amd64-v0.2.0.zip
22+
Expand-Archive windows-container-networking-cni-amd64-v0.2.0.zip -DestinationPath "$Env:ProgramFiles\containerd\cni\bin" -Force
23+
24+
curl.exe -LO https://raw.githubusercontent.com/microsoft/SDN/master/Kubernetes/windows/hns.psm1
25+
ipmo ./hns.psm1
26+
27+
# cirrus already has nat net work configured for docker. We can re-use that for testing
28+
$sn=(get-hnsnetwork | ? Name -Like "nat" | select -ExpandProperty subnets)
29+
$subnet=$sn.AddressPrefix
30+
$gateway=$sn.GatewayAddress
31+
@"
32+
{
33+
"cniVersion": "0.2.0",
34+
"name": "nat",
35+
"type": "nat",
36+
"master": "Ethernet",
37+
"ipam": {
38+
"subnet": "$subnet",
39+
"routes": [
40+
{
41+
"gateway": "$gateway"
42+
}
43+
]
44+
},
45+
"capabilities": {
46+
"portMappings": true,
47+
"dns": true
48+
}
49+
}
50+
"@ | Set-Content "$Env:ProgramFiles\containerd\cni\conf\0-containerd-nat.conf" -Force
51+
52+
echo "configuration complete! Printing configuration..."
53+
echo "Service:"
54+
get-service containerd
55+
echo "cni configuraiton"
56+
cat "$Env:ProgramFiles\containerd\cni\conf\0-containerd-nat.conf"
57+
ls "$Env:ProgramFiles\containerd\cni\bin"
58+
echo "containerd install"
59+
ls "$Env:ProgramFiles\containerd\"
60+
& "$Env:ProgramFiles\containerd\containerd.exe" --version

pkg/testutil/testutil.go

+7
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"io"
2424
"os"
2525
"os/exec"
26+
"runtime"
2627
"strings"
2728
"testing"
2829
"time"
@@ -399,6 +400,12 @@ func NewBase(t *testing.T) *Base {
399400
}
400401

401402
func mirrorOf(s string) string {
403+
if runtime.GOOS == "windows" {
404+
// use gcr.io/k8s-staging-e2e-test-images/busybox:1.29-2-windows-amd64-ltsc2022 locally on windows 11
405+
// https://github.com/microsoft/Windows-Containers/issues/179
406+
return "gcr.io/k8s-staging-e2e-test-images/busybox:1.29-2"
407+
}
408+
402409
// plain mirror, NOT stargz-converted images
403410
return fmt.Sprintf("ghcr.io/stargz-containers/%s-org", s)
404411
}

0 commit comments

Comments
 (0)