Merge pull request #6626 from TBBle/run-cri_integration-tests-in-GitHub_Actions
Run CRI integration tests in GitHub Actions (Windows)
This commit is contained in:
commit
f18880a0ed
53
.github/workflows/ci.yml
vendored
53
.github/workflows/ci.yml
vendored
@ -230,7 +230,7 @@ jobs:
|
|||||||
integration-windows:
|
integration-windows:
|
||||||
name: Windows Integration
|
name: Windows Integration
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
timeout-minutes: 35
|
timeout-minutes: 50
|
||||||
needs: [project, linters, protos, man]
|
needs: [project, linters, protos, man]
|
||||||
env:
|
env:
|
||||||
GOTEST: gotestsum --
|
GOTEST: gotestsum --
|
||||||
@ -259,11 +259,17 @@ jobs:
|
|||||||
repository: Microsoft/hcsshim
|
repository: Microsoft/hcsshim
|
||||||
path: src/github.com/Microsoft/hcsshim
|
path: src/github.com/Microsoft/hcsshim
|
||||||
|
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: kubernetes-sigs/cri-tools
|
||||||
|
path: src/github.com/kubernetes-sigs/cri-tools
|
||||||
|
|
||||||
- name: Set env
|
- name: Set env
|
||||||
run: |
|
run: |
|
||||||
echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV
|
echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV
|
||||||
echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
|
echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
|
||||||
echo "${{ github.workspace }}/src/github.com/containerd/containerd/bin" >> $GITHUB_PATH
|
echo "${{ github.workspace }}/src/github.com/containerd/containerd/bin" >> $GITHUB_PATH
|
||||||
|
echo "${{ github.workspace }}/src/github.com/kubernetes-sigs/cri-tools/build/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
- run: script/setup/install-dev-tools
|
- run: script/setup/install-dev-tools
|
||||||
|
|
||||||
@ -279,6 +285,35 @@ jobs:
|
|||||||
git fetch --tags origin "${SHIM_COMMIT}"
|
git fetch --tags origin "${SHIM_COMMIT}"
|
||||||
git checkout "${SHIM_COMMIT}"
|
git checkout "${SHIM_COMMIT}"
|
||||||
GO111MODULE=on go build -mod=vendor -o "${bindir}/integration/client/containerd-shim-runhcs-v1.exe" ./cmd/containerd-shim-runhcs-v1
|
GO111MODULE=on go build -mod=vendor -o "${bindir}/integration/client/containerd-shim-runhcs-v1.exe" ./cmd/containerd-shim-runhcs-v1
|
||||||
|
cd ../../kubernetes-sigs/cri-tools
|
||||||
|
make critest
|
||||||
|
|
||||||
|
- run: script/setup/install-cni-windows
|
||||||
|
|
||||||
|
- env:
|
||||||
|
TEST_IMAGE_LIST: ${{github.workspace}}/repolist.toml
|
||||||
|
CRI_TEST_IMAGES: ${{github.workspace}}/cri-test-images.yaml
|
||||||
|
BUSYBOX_TESTING_IMAGE_REF: "k8s.gcr.io/e2e-test-images/busybox:1.29-2"
|
||||||
|
RESOURCE_CONSUMER_TESTING_IMAGE_REF: "k8s.gcr.io/e2e-test-images/resource-consumer:1.10"
|
||||||
|
WEBSERVER_TESTING_IMAGE_REF: "k8s.gcr.io/e2e-test-images/nginx:1.14-2"
|
||||||
|
run: |
|
||||||
|
cat > "${{ env.TEST_IMAGE_LIST }}" << EOF
|
||||||
|
busybox = "${{ env.BUSYBOX_TESTING_IMAGE_REF }}"
|
||||||
|
ResourceConsumer = "${{ env.RESOURCE_CONSUMER_TESTING_IMAGE_REF }}"
|
||||||
|
EOF
|
||||||
|
cat > "${{ env.CRI_TEST_IMAGES }}" << EOF
|
||||||
|
defaultTestContainerImage: ${{ env.BUSYBOX_TESTING_IMAGE_REF }}
|
||||||
|
webServerTestImage: ${{ env.WEBSERVER_TESTING_IMAGE_REF }}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- name: Get crictl tool
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
# Get critctl tool. Used for cri-integration tests
|
||||||
|
$CRICTL_DOWNLOAD_URL="https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.21.0/crictl-v1.21.0-windows-amd64.tar.gz"
|
||||||
|
curl.exe -L $CRICTL_DOWNLOAD_URL -o c:\crictl.tar.gz
|
||||||
|
tar -xvf c:\crictl.tar.gz
|
||||||
|
mv crictl.exe "${{ github.workspace }}/bin/crictl.exe" # Move crictl somewhere in path
|
||||||
|
|
||||||
- run: script/setup/install-gotestsum
|
- run: script/setup/install-gotestsum
|
||||||
- name: Tests
|
- name: Tests
|
||||||
@ -301,6 +336,22 @@ jobs:
|
|||||||
CGO_ENABLED: 1
|
CGO_ENABLED: 1
|
||||||
GOTESTSUM_JUNITFILE: ${{github.workspace}}/test-integration-parallel-junit.xml
|
GOTESTSUM_JUNITFILE: ${{github.workspace}}/test-integration-parallel-junit.xml
|
||||||
run: mingw32-make.exe integration
|
run: mingw32-make.exe integration
|
||||||
|
|
||||||
|
- name: CRI Integration Test
|
||||||
|
env:
|
||||||
|
TEST_IMAGE_LIST: ${{github.workspace}}/repolist.toml
|
||||||
|
run: |
|
||||||
|
make cri-integration
|
||||||
|
|
||||||
|
- name: cri-tools critest
|
||||||
|
env:
|
||||||
|
CRI_TEST_IMAGES: ${{github.workspace}}/cri-test-images.yaml
|
||||||
|
shell: powershell
|
||||||
|
run: |
|
||||||
|
Start-Process -FilePath containerd.exe -NoNewWindow -RedirectStandardError true -PassThru
|
||||||
|
get-process | sls containerd
|
||||||
|
start-sleep 5
|
||||||
|
critest.exe --runtime-endpoint=npipe://.//pipe//containerd-containerd --test-images-file='${{env.CRI_TEST_IMAGES}}' --report-dir='${{github.workspace}}/critestreport'
|
||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v2
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
|
1
.github/workflows/windows-periodic.yml
vendored
1
.github/workflows/windows-periodic.yml
vendored
@ -183,7 +183,6 @@ jobs:
|
|||||||
ssh -i $HOME/.ssh/id_rsa ${{ env.SSH_OPTS }} azureuser@${{ env.VM_PUB_IP }} "sh.exe -s" <<EOF
|
ssh -i $HOME/.ssh/id_rsa ${{ env.SSH_OPTS }} azureuser@${{ env.VM_PUB_IP }} "sh.exe -s" <<EOF
|
||||||
cd c:/containerd
|
cd c:/containerd
|
||||||
./script/setup/install-cni-windows
|
./script/setup/install-cni-windows
|
||||||
mkdir /c/tmp
|
|
||||||
export TEST_IMAGE_LIST=c:/repolist.toml
|
export TEST_IMAGE_LIST=c:/repolist.toml
|
||||||
make cri-integration | tee c:/Logs/cri-integration.log
|
make cri-integration | tee c:/Logs/cri-integration.log
|
||||||
EOF
|
EOF
|
||||||
|
@ -31,7 +31,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestAdditionalGids(t *testing.T) {
|
func TestAdditionalGids(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("/tmp", "additional-gids")
|
testPodLogDir, err := os.MkdirTemp("", "additional-gids")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer os.RemoveAll(testPodLogDir)
|
defer os.RemoveAll(testPodLogDir)
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestContainerLogWithoutTailingNewLine(t *testing.T) {
|
func TestContainerLogWithoutTailingNewLine(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("/tmp", "container-log-without-tailing-newline")
|
testPodLogDir, err := os.MkdirTemp("", "container-log-without-tailing-newline")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer os.RemoveAll(testPodLogDir)
|
defer os.RemoveAll(testPodLogDir)
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ func TestContainerLogWithoutTailingNewLine(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLongContainerLog(t *testing.T) {
|
func TestLongContainerLog(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("/tmp", "long-container-log")
|
testPodLogDir, err := os.MkdirTemp("", "long-container-log")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer os.RemoveAll(testPodLogDir)
|
defer os.RemoveAll(testPodLogDir)
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestPodDualStack(t *testing.T) {
|
func TestPodDualStack(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("/tmp", "dualstack")
|
testPodLogDir, err := os.MkdirTemp("", "dualstack")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer os.RemoveAll(testPodLogDir)
|
defer os.RemoveAll(testPodLogDir)
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ func TestPodHostname(t *testing.T) {
|
|||||||
if test.needsHostNetwork && goruntime.GOOS == "windows" {
|
if test.needsHostNetwork && goruntime.GOOS == "windows" {
|
||||||
t.Skip("Skipped on Windows.")
|
t.Skip("Skipped on Windows.")
|
||||||
}
|
}
|
||||||
testPodLogDir, err := os.MkdirTemp("/tmp", "hostname")
|
testPodLogDir, err := os.MkdirTemp("", "hostname")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer os.RemoveAll(testPodLogDir)
|
defer os.RemoveAll(testPodLogDir)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user