|
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