diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3859c6ed1b8a3..c52a17cd24b5f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -377,17 +377,14 @@ jobs: name: Linux Integration runs-on: ${{ matrix.os }} timeout-minutes: 40 - needs: [project, linters, protos, man] strategy: fail-fast: false matrix: runtime: - io.containerd.runc.v2 - runc: [runc, crun] - os: [ubuntu-22.04, actuated-arm64-4cpu-16gb] - exclude: - - os: ${{ github.repository != 'containerd/containerd' && 'actuated-arm64-4cpu-16gb' }} + runc: [runc] + os: [actuated-arm64-4cpu-16gb] env: GOTEST: gotestsum -- @@ -398,6 +395,7 @@ jobs: run: | sudo chmod g+rx /home/runner /home/runner/actions-runner /home/runner/actions-runner/_work sudo chmod o+rx /home/runner /home/runner/actions-runner /home/runner/actions-runner/_work + sudo ls -al /home/runner/actions-runner/_work - uses: actions/checkout@v4 - uses: ./.github/actions/install-go @@ -433,58 +431,6 @@ jobs: - run: script/setup/install-gotestsum - run: script/setup/install-teststat - - name: Tests - env: - GOTESTSUM_JUNITFILE: ${{github.workspace}}/test-unit-root-junit.xml - GOTESTSUM_JSONFILE: ${{github.workspace}}/test-unit-root-gotest.json - run: | - make test - sudo -E PATH=$PATH make root-test - - run: if [ -f *-gotest.json ]; then echo '# Root Test' >> $GITHUB_STEP_SUMMARY; teststat -markdown *-gotest.json >> $GITHUB_STEP_SUMMARY; fi - if: always() - - run: script/test/test2annotation.sh *-gotest.json - if: always() - - - name: Integration 1 - env: - TEST_RUNTIME: ${{ matrix.runtime }} - RUNC_FLAVOR: ${{ matrix.runc }} - GOTESTSUM_JUNITFILE: ${{github.workspace}}/test-integration-serial-junit.xml - GOTESTSUM_JSONFILE: ${{github.workspace}}/test-integration-serial-gotest.json - run: | - extraflags="" - [ "${RUNC_FLAVOR}" == "crun" ] && { - extraflags="EXTRA_TESTFLAGS=-no-criu"; - } - sudo -E PATH=$PATH make integration ${extraflags} TESTFLAGS_RACE=-race - - run: if [ -f *-gotest.json ]; then echo '# Integration 1' >> $GITHUB_STEP_SUMMARY; teststat -markdown *-gotest.json >> $GITHUB_STEP_SUMMARY; fi - if: always() - - run: script/test/test2annotation.sh *-gotest.json - if: always() - - # Run the integration suite a second time. See discussion in github.com/containerd/containerd/pull/1759 - - name: Integration 2 - env: - TEST_RUNTIME: ${{ matrix.runtime }} - RUNC_FLAVOR: ${{ matrix.runc }} - GOTESTSUM_JUNITFILE: ${{github.workspace}}/test-integration-parallel-junit.xml - GOTESTSUM_JSONFILE: ${{github.workspace}}/test-integration-parallel-gotest.json - run: | - extraflags="" - [ "${RUNC_FLAVOR}" == "crun" ] && { - extraflags="EXTRA_TESTFLAGS=-no-criu"; - } - sudo -E PATH=$PATH TESTFLAGS_PARALLEL=1 make integration ${extraflags} - - run: if [ -f *-gotest.json ]; then echo '# Integration 2' >> $GITHUB_STEP_SUMMARY; teststat -markdown *-gotest.json >> $GITHUB_STEP_SUMMARY; fi - if: always() - - run: script/test/test2annotation.sh *-gotest.json - if: always() - - - name: CRI Integration Test - env: - TEST_RUNTIME: ${{ matrix.runtime }} - run: | - CONTAINERD_RUNTIME=$TEST_RUNTIME make cri-integration - name: cri-tools critest env: @@ -517,110 +463,6 @@ jobs: ${{github.workspace}}/report/*.xml ${{github.workspace}}/report/*.log - integration-vagrant: - name: Vagrant integration - runs-on: ubuntu-22.04 - timeout-minutes: 60 - needs: [project, linters, protos, man] - - strategy: - fail-fast: false - matrix: - box: - - fedora/39-cloud-base - - rockylinux/8@9.0.0 - env: - BOX: ${{ matrix.box }} - - steps: - - name: Show the host info - run: | - set -x - uname -a - cat /etc/os-release - cat /proc/cpuinfo - free -mt - - uses: actions/checkout@v4 - - uses: actions/cache@v4 - with: - path: /root/.vagrant.d - key: vagrant-${{ matrix.box }} - - name: Set up vagrant - run: | - # Canonical's Vagrant 2.2.19 dpkg cannot download Fedora 38 image: https://bugs.launchpad.net/vagrant/+bug/2017828 - # So we have to install Vagrant >= 2.3.1 from the upstream: https://github.com/opencontainers/runc/blob/v1.1.8/.cirrus.yml#L41-L49 - curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg - echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list - sudo sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list - sudo apt-get update - sudo apt-get install -y libvirt-daemon libvirt-daemon-system vagrant - sudo systemctl enable --now libvirtd - sudo apt-get build-dep -y vagrant ruby-libvirt - sudo apt-get install -y --no-install-recommends libxslt-dev libxml2-dev libvirt-dev ruby-bundler ruby-dev zlib1g-dev - sudo vagrant plugin install vagrant-libvirt - - name: Boot VM - run: sudo BOX=$BOX vagrant up --no-tty - - name: test-integration - run: sudo BOX=$BOX vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-integration - - name: test-cri-integration - run: sudo BOX=$BOX vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-cri-integration - - name: test-cri - run: sudo BOX=$BOX vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-cri - - tests-cri-in-userns: - name: "CRI-in-UserNS" - - runs-on: ubuntu-22.04 - timeout-minutes: 40 - needs: [project, linters, protos, man] - - steps: - - uses: actions/checkout@v4 - - name: Set up cgroup v2 delegation - run: | - sudo mkdir -p /etc/systemd/system/user@.service.d - cat <> $GITHUB_STEP_SUMMARY; teststat -markdown *-gotest.json >> $GITHUB_STEP_SUMMARY; fi - if: always() - - run: script/test/test2annotation.sh *-gotest.json - if: always() - - uses: actions/upload-artifact@v4 - if: always() - with: - name: TestResults MacOS - path: | - *-junit.xml - *-gotest.json - # Currently Github actions UI supports no masks to mark matrix jobs as required to pass status checks. # This means that every time version of Go, containerd, or OS is changed, a corresponding job should # be added to the list of required checks. Which is not very convenient.