From a28177a7aba30c7493d61b689725b18f8060c420 Mon Sep 17 00:00:00 2001 From: Tristan Cacqueray Date: Tue, 3 Sep 2019 13:31:38 +0000 Subject: [PATCH] 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 --- .zuul.yaml | 61 +++++++++++++++++++ playbooks/fedora-30/setup-rpm-env.yaml | 22 +++++++ .../fedora-30/test-with-podman-stable.yaml | 21 +++++++ playbooks/fedora-31/setup-rpm-env.yaml | 22 +++++++ .../fedora-31/test-with-podman-stable.yaml | 21 +++++++ playbooks/fedora-rawhide/setup-rpm-env.yaml | 23 +++++++ .../test-with-podman-stable.yaml | 21 +++++++ playbooks/shellcheck.yaml | 21 +++++++ 8 files changed, 212 insertions(+) create mode 100644 .zuul.yaml create mode 100644 playbooks/fedora-30/setup-rpm-env.yaml create mode 100644 playbooks/fedora-30/test-with-podman-stable.yaml create mode 100644 playbooks/fedora-31/setup-rpm-env.yaml create mode 100644 playbooks/fedora-31/test-with-podman-stable.yaml create mode 100644 playbooks/fedora-rawhide/setup-rpm-env.yaml create mode 100644 playbooks/fedora-rawhide/test-with-podman-stable.yaml create mode 100644 playbooks/shellcheck.yaml diff --git a/.zuul.yaml b/.zuul.yaml new file mode 100644 index 0000000..6ac1085 --- /dev/null +++ b/.zuul.yaml @@ -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 diff --git a/playbooks/fedora-30/setup-rpm-env.yaml b/playbooks/fedora-30/setup-rpm-env.yaml new file mode 100644 index 0000000..a54a102 --- /dev/null +++ b/playbooks/fedora-30/setup-rpm-env.yaml @@ -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 diff --git a/playbooks/fedora-30/test-with-podman-stable.yaml b/playbooks/fedora-30/test-with-podman-stable.yaml new file mode 100644 index 0000000..e538fc5 --- /dev/null +++ b/playbooks/fedora-30/test-with-podman-stable.yaml @@ -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 }}' diff --git a/playbooks/fedora-31/setup-rpm-env.yaml b/playbooks/fedora-31/setup-rpm-env.yaml new file mode 100644 index 0000000..8c85fbc --- /dev/null +++ b/playbooks/fedora-31/setup-rpm-env.yaml @@ -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 diff --git a/playbooks/fedora-31/test-with-podman-stable.yaml b/playbooks/fedora-31/test-with-podman-stable.yaml new file mode 100644 index 0000000..8fae010 --- /dev/null +++ b/playbooks/fedora-31/test-with-podman-stable.yaml @@ -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 }}' diff --git a/playbooks/fedora-rawhide/setup-rpm-env.yaml b/playbooks/fedora-rawhide/setup-rpm-env.yaml new file mode 100644 index 0000000..9a9c379 --- /dev/null +++ b/playbooks/fedora-rawhide/setup-rpm-env.yaml @@ -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 diff --git a/playbooks/fedora-rawhide/test-with-podman-stable.yaml b/playbooks/fedora-rawhide/test-with-podman-stable.yaml new file mode 100644 index 0000000..d72c357 --- /dev/null +++ b/playbooks/fedora-rawhide/test-with-podman-stable.yaml @@ -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 }}' diff --git a/playbooks/shellcheck.yaml b/playbooks/shellcheck.yaml new file mode 100644 index 0000000..ebf160b --- /dev/null +++ b/playbooks/shellcheck.yaml @@ -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 }}'