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..7347a9f4c 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -48,6 +48,17 @@ 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-fedora-rawhide-commands-options description: Run Toolbx's commands-options system tests in Fedora Rawhide @@ -183,6 +194,7 @@ - project: periodic: jobs: + - system-test-arch-commands-options - system-test-fedora-rawhide-commands-options - system-test-fedora-rawhide-runtime-environment-arch-fedora - system-test-fedora-rawhide-runtime-environment-ubuntu @@ -200,6 +212,7 @@ - unit-test - unit-test-migration-path-for-coreos-toolbox - unit-test-restricted + - system-test-arch-commands-options - system-test-fedora-rawhide-commands-options - system-test-fedora-rawhide-runtime-environment-arch-fedora - system-test-fedora-rawhide-runtime-environment-ubuntu @@ -217,6 +230,7 @@ - unit-test - unit-test-migration-path-for-coreos-toolbox - unit-test-restricted + - system-test-arch-commands-options - 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..befe3caaf --- /dev/null +++ b/playbooks/arch/dependencies.yaml @@ -0,0 +1,64 @@ +# +# 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: + update_cache: "{{ true if zuul.attempts > 1 else false }}" + name: + - apache + - bash-completion + - bats + - codespell + - crun + - fish + - flatpak + - gcc + - go + - go-md2man + - meson + - ninja + - openssl + - podman + - shadow + - shellcheck + - skopeo + - systemd + - udisks2 + +- 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 fuse-overlayfs gcc glibc go go-md2man linux shadow shellcheck podman containernetworking-plugins 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 }}'