Move Vagrant-based tests from GitHub Actions to Cirrus CI
Cirrus CI supports nested virtualization and free to use from open source projects. runc has been using the service since https://github.com/opencontainers/runc/pull/3088. Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
This commit is contained in:
103
.github/workflows/ci.yml
vendored
103
.github/workflows/ci.yml
vendored
@@ -508,106 +508,3 @@ jobs:
|
||||
name: TestResults MacOS
|
||||
path: |
|
||||
*-junit.xml
|
||||
|
||||
vagrant:
|
||||
name: Vagrant
|
||||
# nested virtualization is only available on macOS hosts
|
||||
runs-on: macos-10.15
|
||||
timeout-minutes: 45
|
||||
needs: [project, linters, protos, man]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# Currently crun is disabled to decrease CI flakiness.
|
||||
# We can enable crun again when we get a better CI infra.
|
||||
runc: [runc]
|
||||
# Fedora is for testing cgroup v2 functionality, Rocky Linux is for testing on an enterprise-grade environment
|
||||
box: ["fedora/35-cloud-base", "rockylinux/8"]
|
||||
env:
|
||||
GOTEST: gotestsum --
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: "Cache ~/.vagrant.d/boxes"
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.vagrant.d/boxes
|
||||
key: vagrant-${{ hashFiles('Vagrantfile*') }}
|
||||
|
||||
- name: Vagrant start
|
||||
env:
|
||||
BOX: ${{ matrix.box }}
|
||||
run: |
|
||||
if [ "$BOX" = "rockylinux/8" ]; then
|
||||
# The latest version 5.0.0 seems 404 (as of March 30, 2022)
|
||||
export BOX_VERSION="4.0.0"
|
||||
fi
|
||||
# Retry if it fails (download.fedoraproject.org returns 404 sometimes)
|
||||
vagrant up || vagrant up
|
||||
|
||||
- name: Integration
|
||||
env:
|
||||
RUNC_FLAVOR: ${{ matrix.runc }}
|
||||
SELINUX: Enforcing
|
||||
GOTESTSUM_JUNITFILE: /tmp/test-integration-junit.xml
|
||||
run: vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-integration
|
||||
|
||||
- name: CRI test
|
||||
env:
|
||||
RUNC_FLAVOR: ${{ matrix.runc }}
|
||||
SELINUX: Enforcing
|
||||
REPORT_DIR: /tmp/critestreport
|
||||
run: vagrant up --provision-with=selinux,install-runc,install-gotestsum,test-cri
|
||||
|
||||
- name: Collect the VM's IP address for Docker Hub's throttling issue
|
||||
if: failure()
|
||||
run: vagrant ssh -- curl https://api64.ipify.org/
|
||||
|
||||
- name: Get test reports
|
||||
if: always()
|
||||
run: |
|
||||
set -e
|
||||
vagrant plugin install vagrant-vbguest
|
||||
vagrant plugin install vagrant-scp
|
||||
vagrant scp :/tmp/test-integration-junit.xml "${{ github.workspace }}/"
|
||||
vagrant scp :/tmp/critestreport "${{ github.workspace }}/critestreport"
|
||||
- uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
# ${{ matrix.box }} cannot be used here due to character limitation
|
||||
name: TestResults vagrant ${{ github.run_id }} ${{ matrix.runtime }} ${{matrix.runc}}
|
||||
path: |
|
||||
${{github.workspace}}/*-junit.xml
|
||||
${{github.workspace}}/critestreport/*
|
||||
|
||||
cgroup2-misc:
|
||||
name: CGroupsV2 - rootless CRI test
|
||||
# nested virtualization is only available on macOS hosts
|
||||
runs-on: macos-10.15
|
||||
timeout-minutes: 45
|
||||
needs: [project, linters, protos, man]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: "Cache ~/.vagrant.d/boxes"
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.vagrant.d/boxes
|
||||
key: vagrant-${{ hashFiles('Vagrantfile*') }}
|
||||
|
||||
- name: Vagrant start
|
||||
run: |
|
||||
# Retry if it fails (download.fedoraproject.org returns 404 sometimes)
|
||||
vagrant up || vagrant up
|
||||
|
||||
# slow, so separated from the regular cgroup2 task
|
||||
- name: CRI-in-UserNS test with Rootless Podman
|
||||
run: |
|
||||
vagrant up --provision-with=install-rootless-podman
|
||||
# Execute rootless podman to create the UserNS env
|
||||
vagrant ssh -- podman build --target cri-in-userns -t cri-in-userns -f /vagrant/contrib/Dockerfile.test /vagrant
|
||||
vagrant ssh -- podman run --rm --privileged cri-in-userns
|
||||
|
||||
- name: Collect the VM's IP address for Docker Hub's throttling issue
|
||||
if: failure()
|
||||
run: vagrant ssh -- curl https://api64.ipify.org/
|
||||
|
||||
Reference in New Issue
Block a user