From 4d7244363272e2163faf26c3aa324b1dcfa39425 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 5 Nov 2024 18:35:51 +0100 Subject: [PATCH] .zuul, playbooks: Run the CI on Arch Linux https://github.com/containers/toolbox/issues/1438 --- .github/CODEOWNERS | 1 + .zuul.yaml | 42 +++++++++++++++++++++ playbooks/arch/dependencies.yaml | 65 ++++++++++++++++++++++++++++++++ playbooks/arch/setup.yaml | 25 ++++++++++++ 4 files changed, 133 insertions(+) create mode 100644 playbooks/arch/dependencies.yaml create mode 100644 playbooks/arch/setup.yaml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 481c0e531..9bbdaac42 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -7,3 +7,4 @@ /images/arch @Foxboron /images/rhel @debarshiray @olivergs /images/ubuntu @Jmennius +/playbooks/arch @Foxboron diff --git a/.zuul.yaml b/.zuul.yaml index f52971248..f0dce0fc1 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -48,6 +48,39 @@ pre-run: playbooks/setup-env-restricted.yaml run: playbooks/unit-test.yaml +- job: + name: system-test-arch-commands-options + description: Run Toolbx's commands-options system tests on Arch Linux + timeout: 6300 + nodeset: + nodes: + - name: arch + label: arch-linux + pre-run: playbooks/arch/setup.yaml + run: playbooks/system-test-commands-options.yaml + +- job: + name: system-test-arch-runtime-environment-arch-fedora + description: Run Toolbx's (arch-fedora,runtime-environment) system tests on Arch Linux + timeout: 6300 + nodeset: + nodes: + - name: arch + label: arch-linux + pre-run: playbooks/arch/setup.yaml + run: playbooks/system-test-runtime-environment-arch-fedora.yaml + +- job: + name: system-test-arch-runtime-environment-ubuntu + description: Run Toolbx's (runtime-environment,ubuntu) system tests on Arch Linux + timeout: 6300 + nodeset: + nodes: + - name: arch + label: arch-linux + pre-run: playbooks/arch/setup.yaml + run: playbooks/system-test-runtime-environment-ubuntu.yaml + - job: name: system-test-fedora-rawhide-commands-options description: Run Toolbx's commands-options system tests in Fedora Rawhide @@ -183,6 +216,9 @@ - project: periodic: jobs: + - system-test-arch-commands-options + - system-test-arch-runtime-environment-arch-fedora + - system-test-arch-runtime-environment-ubuntu - system-test-fedora-rawhide-commands-options - system-test-fedora-rawhide-runtime-environment-arch-fedora - system-test-fedora-rawhide-runtime-environment-ubuntu @@ -200,6 +236,9 @@ - unit-test - unit-test-migration-path-for-coreos-toolbox - unit-test-restricted + - system-test-arch-commands-options + - system-test-arch-runtime-environment-arch-fedora + - system-test-arch-runtime-environment-ubuntu - system-test-fedora-rawhide-commands-options - system-test-fedora-rawhide-runtime-environment-arch-fedora - system-test-fedora-rawhide-runtime-environment-ubuntu @@ -217,6 +256,9 @@ - unit-test - unit-test-migration-path-for-coreos-toolbox - unit-test-restricted + - system-test-arch-commands-options + - system-test-arch-runtime-environment-arch-fedora + - system-test-arch-runtime-environment-ubuntu - system-test-fedora-rawhide-commands-options - system-test-fedora-rawhide-runtime-environment-arch-fedora - system-test-fedora-rawhide-runtime-environment-ubuntu diff --git a/playbooks/arch/dependencies.yaml b/playbooks/arch/dependencies.yaml new file mode 100644 index 000000000..ddd316c44 --- /dev/null +++ b/playbooks/arch/dependencies.yaml @@ -0,0 +1,65 @@ +# +# Copyright © 2024 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +- name: Install Arch Linux packages + become: yes + package: + name: + - apache + - bash-completion + - bats + - codespell + - crun + - fish + - flatpak + - gcc + - go + - go-md2man + - meson + - ninja + - openssl + - pkgconf + - podman + - shadow + - shellcheck + - skopeo + - systemd + - udisks2 + update_cache: "{{ true if zuul.attempts > 1 else false }}" + +- name: Download Go modules + command: go mod download -x + args: + chdir: '{{ zuul.project.src_dir }}/src' + +- name: Initialize Git submodules + command: git submodule init + args: + chdir: '{{ zuul.project.src_dir }}' + +- name: Update Git submodules + command: git submodule update + args: + chdir: '{{ zuul.project.src_dir }}' + +- name: Check versions of crucial packages + command: pacman --query bash bats codespell conmon containers-common crun flatpak gcc glibc go go-md2man linux podman shadow shellcheck skopeo + +- name: Show Podman version + command: podman version + +- name: Show Podman related system information + command: podman info --debug diff --git a/playbooks/arch/setup.yaml b/playbooks/arch/setup.yaml new file mode 100644 index 000000000..cf466dadf --- /dev/null +++ b/playbooks/arch/setup.yaml @@ -0,0 +1,25 @@ +# +# Copyright © 2021 – 2024 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +--- +- hosts: all + tasks: + - include_tasks: dependencies.yaml + + - name: Set up build directory + command: meson setup --fatal-meson-warnings builddir + args: + chdir: '{{ zuul.project.src_dir }}'