| 
1 | 1 | ---  | 
2 |  | -# We use Cirrus for RHEL clones (native) and Fedora (in Vagrant), because  | 
3 |  | -# neither is available on GHA natively, so the only option is VM.  | 
4 |  | -# In GHA, nested virtualization is only supported on macOS instances, which  | 
5 |  | -# are slow and flaky.  | 
 | 2 | +# We use Cirrus for RHEL clones because Cirrus can directly run them  | 
 | 3 | +# without depending on nested virtualization.  | 
6 | 4 | 
 
  | 
7 | 5 | # NOTE Cirrus execution environments lack a terminal, needed for  | 
8 | 6 | # some integration tests. So we use `ssh -tt` command to fake a terminal.  | 
9 | 7 | 
 
  | 
10 |  | -task:  | 
11 |  | -  timeout_in: 30m  | 
12 |  | - | 
13 |  | -  env:  | 
14 |  | -    DEBIAN_FRONTEND: noninteractive  | 
15 |  | -    HOME: /root  | 
16 |  | -    # yamllint disable rule:key-duplicates  | 
17 |  | -    matrix:  | 
18 |  | -      DISTRO: fedora  | 
19 |  | - | 
20 |  | -  name: vagrant DISTRO:$DISTRO  | 
21 |  | - | 
22 |  | -  compute_engine_instance:  | 
23 |  | -    image_project: cirrus-images  | 
24 |  | -    image: family/docker-kvm  | 
25 |  | -    platform: linux  | 
26 |  | -    nested_virtualization: true  | 
27 |  | -    # CPU limit: `16 / NTASK`: see https://cirrus-ci.org/faq/#are-there-any-limits  | 
28 |  | -    cpu: 4  | 
29 |  | -    # Memory limit: `4GB * NCPU`  | 
30 |  | -    memory: 16G  | 
31 |  | - | 
32 |  | -  host_info_script: |  | 
33 |  | -    uname -a  | 
34 |  | -    # -----  | 
35 |  | -    cat /etc/os-release  | 
36 |  | -    # -----  | 
37 |  | -    df -T  | 
38 |  | -    # -----  | 
39 |  | -    cat /proc/cpuinfo  | 
40 |  | -  install_libvirt_vagrant_script: |  | 
41 |  | -    curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg  | 
42 |  | -    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  | 
43 |  | -    sudo sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list  | 
44 |  | -    apt-get update  | 
45 |  | -    apt-get install -y libvirt-daemon libvirt-daemon-system vagrant  | 
46 |  | -    systemctl enable --now libvirtd  | 
47 |  | -    apt-get build-dep -y vagrant ruby-libvirt  | 
48 |  | -    apt-get install -y --no-install-recommends libxslt-dev libxml2-dev libvirt-dev ruby-bundler ruby-dev zlib1g-dev  | 
49 |  | -    vagrant plugin install vagrant-libvirt  | 
50 |  | -  vagrant_cache:  | 
51 |  | -    fingerprint_script: cat Vagrantfile.$DISTRO  | 
52 |  | -    folder: /root/.vagrant.d/boxes  | 
53 |  | -  vagrant_up_script: |  | 
54 |  | -    ln -sf Vagrantfile.$DISTRO Vagrantfile  | 
55 |  | -    # Retry if it fails (download.fedoraproject.org returns 404 sometimes)  | 
56 |  | -    vagrant up --no-tty || vagrant up --no-tty  | 
57 |  | -    mkdir -p -m 0700 /root/.ssh  | 
58 |  | -    vagrant ssh-config >> /root/.ssh/config  | 
59 |  | -  guest_info_script: |  | 
60 |  | -    ssh default 'sh -exc "uname -a && systemctl --version && df -T && cat /etc/os-release && go version && sestatus && rpm -q container-selinux"'  | 
61 |  | -  check_config_script: |  | 
62 |  | -    ssh default /vagrant/script/check-config.sh  | 
63 |  | -  unit_tests_script: |  | 
64 |  | -    ssh default 'sudo -i make -C /vagrant localunittest'  | 
65 |  | -  integration_systemd_script: |  | 
66 |  | -    ssh -tt default "sudo -i make -C /vagrant localintegration RUNC_USE_SYSTEMD=yes"  | 
67 |  | -  integration_fs_script: |  | 
68 |  | -    ssh -tt default "sudo -i make -C /vagrant localintegration"  | 
69 |  | -  integration_systemd_rootless_script: |  | 
70 |  | -    ssh -tt default "sudo -i make -C /vagrant localrootlessintegration RUNC_USE_SYSTEMD=yes"  | 
71 |  | -  integration_fs_rootless_script: |  | 
72 |  | -    ssh -tt default "sudo -i make -C /vagrant localrootlessintegration"  | 
73 |  | -
  | 
74 | 8 | task:  | 
75 | 9 |   timeout_in: 30m  | 
76 | 10 | 
 
  | 
 | 
0 commit comments