Enable Zuul

This adds several .yaml files that specify jobs (those in folder
playbooks) and one that serves as the main config (.zuul.yaml).

Tests and builds are currently executed on every change in PRs (ie.,
check and gating) and periodically (according to the documentation
this pipeline should be run at least once a day).

There are 4 tests in total:

1. 'ninja test' - does the same thing that Travis did
2. Fedora 30 - runs the system tests with current Podman and Toolbox
   in Fedora 30
3. Fedora 31 - the same but for Fedora 31
4. Fedora Rawhide - the same but for Fedora Rawhide

https://github.com/containers/toolbox/issues/68
This commit is contained in:
Tristan Cacqueray 2019-09-03 13:31:38 +00:00 committed by Debarshi Ray
parent da4fea271f
commit a28177a7ab
8 changed files with 212 additions and 0 deletions

61
.zuul.yaml Normal file
View File

@ -0,0 +1,61 @@
---
- job:
name: shellcheck
description: Check toolbox with shellcheck
timeout: 300
nodeset:
nodes:
- name: ci-node-30
label: cloud-fedora-30-small
run: playbooks/shellcheck.yaml
- job:
name: test-with-podman-stable-f30
description: Test toolbox with stable Podman in Fedora 30
timeout: 1200
nodeset:
nodes:
- name: ci-node-30
label: cloud-fedora-30-small
pre-run: playbooks/fedora-30/setup-rpm-env.yaml
run: playbooks/fedora-30/test-with-podman-stable.yaml
- job:
name: test-with-podman-stable-f31
description: Test toolbox with stable Podman in Fedora 31
timeout: 1200
nodeset:
nodes:
- name: ci-node-31
label: cloud-fedora-31-small
pre-run: playbooks/fedora-31/setup-rpm-env.yaml
run: playbooks/fedora-31/test-with-podman-stable.yaml
- job:
name: test-with-podman-rawhide
description: Test toolbox with latest Podman in Fedora Rawhide
timeout: 1200
nodeset:
nodes:
- name: ci-node-rawhide
label: cloud-fedora-rawhide-small
pre-run: playbooks/fedora-rawhide/setup-rpm-env.yaml
run: playbooks/fedora-rawhide/test-with-podman-stable.yaml
- project:
periodic:
jobs:
- test-with-podman-rawhide
- test-with-podman-stable-f31
- test-with-podman-stable-f30
check:
jobs:
- shellcheck
- test-with-podman-stable-f30
- test-with-podman-stable-f31
- test-with-podman-rawhide
gate:
jobs:
- test-with-podman-stable-f30
- test-with-podman-stable-f31
- test-with-podman-rawhide

View File

@ -0,0 +1,22 @@
---
- hosts: all
tasks:
- name: Install requirements
become: yes
package:
name:
- golang-github-cpuguy83-go-md2man
- ninja-build
- meson
- flatpak-session-helper
- systemd
- bats
- bash-completion
- udisks2
- podman
- name: Setup environment (create missing /run/media)
command: sudo systemd-tmpfiles --create
- name: Check versions of crucial packages
command: rpm -q podman runc conmon fuse-overlayfs flatpak-session-helper

View File

@ -0,0 +1,21 @@
---
- hosts: ci-node-30
tasks:
- name: Build toolbox
command: meson builddir
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Install toolbox
become: yes
command: ninja -C builddir install
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Run system tests
command: bats ./test/system
environment:
PODMAN: '/usr/bin/podman'
TOOLBOX: './toolbox'
args:
chdir: '{{ zuul.project.src_dir }}'

View File

@ -0,0 +1,22 @@
---
- hosts: all
tasks:
- name: Install requirements
become: yes
package:
name:
- golang-github-cpuguy83-md2man
- ninja-build
- meson
- flatpak-session-helper
- systemd
- bats
- bash-completion
- udisks2
- podman
- name: Setup environment (create missing /run/media)
command: sudo systemd-tmpfiles --create
- name: Check versions of crucial packages
command: rpm -q podman crun conmon fuse-overlayfs flatpak-session-helper

View File

@ -0,0 +1,21 @@
---
- hosts: ci-node-31
tasks:
- name: Build toolbox
command: meson builddir
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Install toolbox
become: yes
command: ninja -C builddir install
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Run system tests
command: bats ./test/system
environment:
PODMAN: '/usr/bin/podman'
TOOLBOX: './toolbox'
args:
chdir: '{{ zuul.project.src_dir }}'

View File

@ -0,0 +1,23 @@
---
- hosts: all
tasks:
- name: Install requirements
become: yes
package:
use: dnf
name:
- golang-github-cpuguy83-md2man
- ninja-build
- meson
- flatpak-session-helper
- systemd
- bats
- bash-completion
- udisks2
- podman
- name: Setup environment (create missing /run/media)
command: sudo systemd-tmpfiles --create
- name: Check versions of crucial packages
command: rpm -q podman crun conmon fuse-overlayfs flatpak-session-helper

View File

@ -0,0 +1,21 @@
---
- hosts: ci-node-rawhide
tasks:
- name: Build toolbox
command: meson builddir
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Install toolbox
become: yes
command: ninja -C builddir install
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Run system tests
command: bats ./test/system
environment:
PODMAN: '/usr/bin/podman'
TOOLBOX: './toolbox'
args:
chdir: '{{ zuul.project.src_dir }}'

21
playbooks/shellcheck.yaml Normal file
View File

@ -0,0 +1,21 @@
---
- hosts: all
tasks:
- name: Install requirements
become: yes
package:
name:
- golang-github-cpuguy83-go-md2man
- ninja-build
- meson
- ShellCheck
- name: Build
command: meson builddir
args:
chdir: '{{ zuul.project.src_dir }}'
- name: Test
command: ninja -C builddir test
args:
chdir: '{{ zuul.project.src_dir }}'