From f136732fee89d6c560a648d0920fd843d1b2adfc Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Fri, 19 Jan 2024 12:31:18 +0900 Subject: [PATCH] GitHub Actions: use Linux runners for nested virt "Larger" runners are no longer needed for Linux with nested virt. Replaces PR 3382 Signed-off-by: Akihiro Suda --- .github/workflows/cgroup2.yaml | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cgroup2.yaml b/.github/workflows/cgroup2.yaml index 29185d9588..2c934085de 100644 --- a/.github/workflows/cgroup2.yaml +++ b/.github/workflows/cgroup2.yaml @@ -14,8 +14,7 @@ permissions: jobs: docker: name: Cgroup v2 - # nested virtualization is only available on macOS hosts - runs-on: macos-12 + runs-on: ubuntu-22.04 timeout-minutes: 30 strategy: fail-fast: false @@ -25,22 +24,37 @@ jobs: env: KIND_EXPERIMENTAL_PROVIDER: "${{ matrix.provider }}" ROOTLESS: "${{ matrix.rootless }}" - HELPER: "./hack/ci/vagrant-helper.sh" + HELPER: "sudo ./hack/ci/vagrant-helper.sh" JOB_NAME: "cgroup2-${{ matrix.provider }}-${{ matrix.rootless }}" steps: - name: Check out code uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + # https://github.com/containerd/containerd/blob/420503072e58f27a7192ddea4e6e41dced911cb9/.github/workflows/ci.yml#L569-L581 + - 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 Fedora run: | ln -sf ./hack/ci/Vagrantfile ./Vagrantfile # Retry if it fails (download.fedoraproject.org returns 404 sometimes) # Spend up to 10 seconds on this for i in {1..4}; do - if vagrant up; then + if sudo vagrant up; then break fi - vagrant destroy -f + sudo vagrant destroy -f sleep $i done