diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f60daaff..f97e69190 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -411,6 +411,7 @@ jobs: path: | ${{github.workspace}}/*-junit.xml ${{github.workspace}}/*-gotest.json + ${{github.workspace}}/report/*.log integration-linux: name: Linux Integration @@ -532,10 +533,15 @@ jobs: ENABLE_CRI_SANDBOXES: ${{ matrix.enable_cri_sandboxes }} run: | BDIR="$(mktemp -d -p $PWD)" + mkdir -p ${{github.workspace}}/report function cleanup() { sudo pkill containerd || true - cat ${BDIR}/containerd-cri.log + + echo ::group::containerd logs + cat ${{github.workspace}}/report/containerd.log + echo ::endgroup:: + sudo -E rm -rf ${BDIR} } trap cleanup EXIT @@ -547,9 +553,9 @@ jobs: runtime_type = "${TEST_RUNTIME}" EOF sudo ls /etc/cni/net.d - sudo -E PATH=$PATH /usr/local/bin/containerd -a ${BDIR}/c.sock --config ${BDIR}/config.toml --root ${BDIR}/root --state ${BDIR}/state --log-level debug &> ${BDIR}/containerd-cri.log & + sudo -E PATH=$PATH /usr/local/bin/containerd -a ${BDIR}/c.sock --config ${BDIR}/config.toml --root ${BDIR}/root --state ${BDIR}/state --log-level debug &> ${{github.workspace}}/report/containerd.log & sudo -E PATH=$PATH /usr/local/bin/ctr -a ${BDIR}/c.sock version - sudo -E PATH=$PATH critest --report-dir "${{github.workspace}}/critestreport" --runtime-endpoint=unix:///${BDIR}/c.sock --parallel=8 + sudo -E PATH=$PATH critest --report-dir "${{github.workspace}}/report" --runtime-endpoint=unix:///${BDIR}/c.sock --parallel=8 # Log the status of this VM to investigate issues like # https://github.com/containerd/containerd/issues/4969 @@ -567,7 +573,8 @@ jobs: path: | *-junit.xml *-gotest.json - ${{github.workspace}}/critestreport/*.xml + ${{github.workspace}}/report/*.xml + ${{github.workspace}}/report/*.log tests-mac-os: name: MacOS unit tests diff --git a/Makefile b/Makefile index ecf166ac4..704fe4652 100644 --- a/Makefile +++ b/Makefile @@ -220,7 +220,7 @@ bin/cri-integration.test: cri-integration: binaries bin/cri-integration.test ## run cri integration tests (example: FOCUS=TestContainerListStats make cri-integration) @echo "$(WHALE) $@" - @bash -x ./script/test/cri-integration.sh + @bash ./script/test/cri-integration.sh @rm -rf bin/cri-integration.test # build runc shimv2 with failpoint control, only used by integration test diff --git a/script/test/cri-integration.sh b/script/test/cri-integration.sh index 5835d53d7..8d1a2a29a 100755 --- a/script/test/cri-integration.sh +++ b/script/test/cri-integration.sh @@ -59,7 +59,17 @@ ${CMD} --test.run="${FOCUS}" --test.v \ --containerd-bin="${CONTAINERD_BIN}" \ --image-list="${TEST_IMAGE_LIST:-}" && test_exit_code=$? || test_exit_code=$? -test $test_exit_code -ne 0 && \ - cat "$REPORT_DIR/containerd.log" +if [[ "$test_exit_code" -ne 0 ]]; then + if [[ -e "$GITHUB_WORKSPACE" ]]; then + mkdir -p "$GITHUB_WORKSPACE/report" + mv "$REPORT_DIR/containerd.log" "$GITHUB_WORKSPACE/report" + + echo ::group::containerd logs + cat "$GITHUB_WORKSPACE/report/containerd.log" + echo ::endgroup:: + else + cat "$REPORT_DIR/containerd.log" + fi +fi exit ${test_exit_code}