Skip to content

Commit

Permalink
Enable Zuul
Browse files Browse the repository at this point in the history
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

#68
  • Loading branch information
TristanCacqueray authored and debarshiray committed Jan 22, 2020
1 parent da4fea2 commit a28177a
Show file tree
Hide file tree
Showing 8 changed files with 212 additions and 0 deletions.
61 changes: 61 additions & 0 deletions .zuul.yaml
Original file line number Diff line number Diff line change
@@ -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
22 changes: 22 additions & 0 deletions playbooks/fedora-30/setup-rpm-env.yaml
Original file line number Diff line number Diff line change
@@ -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
21 changes: 21 additions & 0 deletions playbooks/fedora-30/test-with-podman-stable.yaml
Original file line number Diff line number Diff line change
@@ -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 }}'
22 changes: 22 additions & 0 deletions playbooks/fedora-31/setup-rpm-env.yaml
Original file line number Diff line number Diff line change
@@ -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
21 changes: 21 additions & 0 deletions playbooks/fedora-31/test-with-podman-stable.yaml
Original file line number Diff line number Diff line change
@@ -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 }}'
23 changes: 23 additions & 0 deletions playbooks/fedora-rawhide/setup-rpm-env.yaml
Original file line number Diff line number Diff line change
@@ -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
21 changes: 21 additions & 0 deletions playbooks/fedora-rawhide/test-with-podman-stable.yaml
Original file line number Diff line number Diff line change
@@ -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 changes: 21 additions & 0 deletions playbooks/shellcheck.yaml
Original file line number Diff line number Diff line change
@@ -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 }}'

0 comments on commit a28177a

Please sign in to comment.