Compare commits

..

No commits in common. "stream-container-tools-4.0-rhel-8.8.0" and "c8-stream-1.0" have entirely different histories.

14 changed files with 100 additions and 737 deletions

View File

2
.gitignore vendored
View File

@ -1,2 +0,0 @@
artifacts
tests/packages

100
SOURCES/modulemd.src.txt Normal file
View File

@ -0,0 +1,100 @@
---
document: modulemd
version: 2
data:
name: container-tools
stream: 1.0
summary: >-
Stable versions of podman 1.0, buildah 1.5, skopeo 0.1, runc, conmon, CRIU,
Udica, etc as well as dependencies such as container-selinux built and
tested together, and supported for 24 months.
description: >-
Stable versions of podman 1.0 , buildah 1.5, skopeo 0.1, runc, conmon,
CRIU, Udica, etc as well as dependencies such as container-selinux built
and tested together. Released with RHEL 8.0 and supported for 24 months.
During the support lifecycle, back ports of important, critical
vulnerabilities (CVEs, RHSAs) and bug fixes (RHBAs) are provided to this
stream, and versions do not move forward. For more information see:
https://access.redhat.com/support/policy/updates/containertools
license:
module:
- MIT
dependencies:
- buildrequires:
go-toolset: [rhel8]
golang-ecosystem: [1.0]
platform: [el8]
requires:
platform: [el8]
references:
community: https://github.com/projectatomic
documentation: https://projectatomic.io
tracker: https://github.com/projectatomic
profiles:
common:
rpms:
- buildah
- container-selinux
- containernetworking-plugins
- criu
- fuse-overlayfs
- oci-systemd-hook
- oci-umount
- podman
- runc
- skopeo
- slirp4netns
api:
rpms:
- buildah
- container-selinux
- containernetworking-plugins
- containers-common
- fuse-overlayfs
- oci-systemd-hook
- oci-umount
- podman
- podman-docker
- runc
- skopeo
- slirp4netns
buildopts:
rpms:
macros: |
%_with_ignore_tests 1
components:
rpms:
buildah:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
container-selinux:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
containernetworking-plugins:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
criu:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
fuse-overlayfs:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
oci-systemd-hook:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
oci-umount:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
podman:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
runc:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
skopeo:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
slirp4netns:
rationale: Primary component of this module
ref: stream-container-tools-1.0-rhel-8.3.0
...

View File

@ -1,272 +0,0 @@
---
document: modulemd
version: 2
data:
name: container-tools
stream: 4.0
version: 8080020230131213135
context: 8108cfbc
summary: Stable versions of podman 4.0, buildah 1.24, skopeo 1.6, runc, conmon,
CRIU, Udica, etc as well as dependencies such as container-selinux built and tested
together, and supported as documented on the Application Stream lifecycle page.
description: >-
Stable versions of podman 4.0, buildah 1.24, skopeo 1.6, runc, conmon, CRIU, Udica,
etc as well as dependencies such as container-selinux built and tested together.
Released with RHEL 8.6 and supported for 24 months. During the support lifecycle,
back ports of important, critical vulnerabilities (CVEs, RHSAs) and bug fixes
(RHBAs) are provided to this stream, and versions do not move forward. For more
information see: https://access.redhat.com/support/policy/updates/containertools
license:
module:
- MIT
xmd:
mbs:
buildrequires:
go-toolset:
context: 17f3f959
filtered_rpms: []
koji_tag: module-go-toolset-rhel8-8080020230117180742-17f3f959
ref: 3e0916000cbb101d8a5edb12f2f5d819c4683e38
stream: rhel8
version: 8080020230117180742
golang-ecosystem:
context: cdc1202b
filtered_rpms: []
koji_tag: module-golang-ecosystem-1.0-8010020191120164442-cdc1202b
ref: a9bfdf33835d03622fc88ac8f1779ce78fde26fd
stream: 1.0
version: 8010020191120164442
platform:
context: 00000000
filtered_rpms: []
koji_tag: module-centos-8.8.0-build
ref: virtual
stream: el8.8.0
stream_collision_modules:
ursine_rpms:
version: 2
commit: 97ba5e255ad89d3de8d1f0dc147518d20a748bde
mse: TRUE
rpms:
buildah:
ref: 67e277633047cc6d3fdbb186c87c0ddbf72b89e5
cockpit-podman:
ref: 708a8b988d519fee8866a122b39b0e8bc3c51bc0
conmon:
ref: f0226e0f00d416a1f198e5a27e769f21a34ba9fe
container-selinux:
ref: 96ac6f8b706d27d86df27211a06b6bc402469ee8
containernetworking-plugins:
ref: 09517da942a8f06c4ca96046ac0812af8debe896
containers-common:
ref: fb79ab7222d3a01f93ec661b8ee1f9a413b890a2
criu:
ref: 8125903a0d00c007a847b7c8d0fd1904647308c3
crun:
ref: 364f3c322d8180f35e5c194d8335bb317b2ca85f
fuse-overlayfs:
ref: be252e077425a3307b64012128613306d2cfeddd
libslirp:
ref: 03fb499d131c7221b3406245a97e25ef55d4a6a0
oci-seccomp-bpf-hook:
ref: f39f4432291a3d494fff68a346312072fb5c3a0f
podman:
ref: 1d34933d39a8e7bf136a37ab91f6ee076d183744
python-podman:
ref: c702e898636a4702b1dfd1b4114704df53f4c3d0
runc:
ref: 1461459ff374b8044b306373d72198b4d522d7a4
skopeo:
ref: 7a1b1a98208e14debaa72eb508bc0190b29b8217
slirp4netns:
ref: 96c14e14a363ccce188e36fee0b70dd5feced767
toolbox:
ref: 71cf876b6509f6864ccccb0f2ee913e2eb9dc159
udica:
ref: 7494166e74694ca20a27084c29e377de4542f357
scmurl: git+https://git.centos.org/modules/container-tools.git?#97ba5e255ad89d3de8d1f0dc147518d20a748bde
ursine_rpms:
- golang-bin-0:1.19.4-2.module_el8.8.0+1238+ed248327.ppc64le
- delve-0:1.9.1-1.module_el8.8.0+1221+80a886ce.src
- delve-debugsource-0:1.9.1-1.module_el8.8.0+1221+80a886ce.x86_64
- go-toolset-0:1.19.4-1.module_el8.8.0+1238+ed248327.src
- go-toolset-0:1.19.4-1.module_el8.8.0+1238+ed248327.ppc64le
- go-toolset-0:1.19.4-1.module_el8.8.0+1238+ed248327.aarch64
- golang-docs-0:1.19.4-2.module_el8.8.0+1238+ed248327.noarch
- golang-bin-0:1.19.4-2.module_el8.8.0+1238+ed248327.x86_64
- golang-0:1.19.4-2.module_el8.8.0+1238+ed248327.aarch64
- golang-0:1.19.4-2.module_el8.8.0+1238+ed248327.ppc64le
- golang-src-0:1.19.4-2.module_el8.8.0+1238+ed248327.noarch
- delve-0:1.9.1-1.module_el8.8.0+1221+80a886ce.x86_64
- golang-0:1.19.4-2.module_el8.8.0+1238+ed248327.x86_64
- golang-misc-0:1.19.4-2.module_el8.8.0+1238+ed248327.noarch
- delve-debuginfo-0:1.9.1-1.module_el8.8.0+1221+80a886ce.x86_64
- golang-tests-0:1.19.4-2.module_el8.8.0+1238+ed248327.noarch
- golang-race-0:1.19.4-2.module_el8.8.0+1238+ed248327.x86_64
- golang-0:1.19.4-2.module_el8.8.0+1238+ed248327.src
- golang-bin-0:1.19.4-2.module_el8.8.0+1238+ed248327.aarch64
- go-toolset-0:1.19.4-1.module_el8.8.0+1238+ed248327.x86_64
dependencies:
- buildrequires:
go-toolset: [rhel8]
golang-ecosystem: [1.0]
platform: [el8.8.0]
requires:
platform: [el8]
references:
community: https://github.com/projectatomic
documentation: https://projectatomic.io
tracker: https://github.com/projectatomic
profiles:
common:
rpms:
- buildah
- cockpit-podman
- conmon
- container-selinux
- containernetworking-plugins
- containers-common
- criu
- crun
- fuse-overlayfs
- libslirp
- podman
- python3-podman
- runc
- skopeo
- slirp4netns
- toolbox
- udica
api:
rpms:
- buildah
- conmon
- container-selinux
- containernetworking-plugins
- containers-common
- fuse-overlayfs
- libslirp
- podman
- podman-docker
- podman-manpages
- podman-remote
- python3-podman
- runc
- skopeo
- slirp4netns
buildopts:
rpms:
macros: >
%_with_ignore_tests 1
components:
rpms:
buildah:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/buildah
cache: https://git.centos.org/repo/pkgs/buildah
ref: 67e277633047cc6d3fdbb186c87c0ddbf72b89e5
arches: [aarch64, i686, ppc64le, x86_64]
cockpit-podman:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/cockpit-podman
cache: https://git.centos.org/repo/pkgs/cockpit-podman
ref: 708a8b988d519fee8866a122b39b0e8bc3c51bc0
arches: [aarch64, i686, ppc64le, x86_64]
conmon:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/conmon
cache: https://git.centos.org/repo/pkgs/conmon
ref: f0226e0f00d416a1f198e5a27e769f21a34ba9fe
arches: [aarch64, i686, ppc64le, x86_64]
container-selinux:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/container-selinux
cache: https://git.centos.org/repo/pkgs/container-selinux
ref: 96ac6f8b706d27d86df27211a06b6bc402469ee8
arches: [aarch64, i686, ppc64le, x86_64]
containernetworking-plugins:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/containernetworking-plugins
cache: https://git.centos.org/repo/pkgs/containernetworking-plugins
ref: 09517da942a8f06c4ca96046ac0812af8debe896
arches: [aarch64, i686, ppc64le, x86_64]
containers-common:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/containers-common
cache: https://git.centos.org/repo/pkgs/containers-common
ref: fb79ab7222d3a01f93ec661b8ee1f9a413b890a2
arches: [aarch64, i686, ppc64le, x86_64]
criu:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/criu
cache: https://git.centos.org/repo/pkgs/criu
ref: 8125903a0d00c007a847b7c8d0fd1904647308c3
arches: [aarch64, i686, ppc64le, x86_64]
crun:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/crun
cache: https://git.centos.org/repo/pkgs/crun
ref: 364f3c322d8180f35e5c194d8335bb317b2ca85f
arches: [aarch64, i686, ppc64le, x86_64]
fuse-overlayfs:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/fuse-overlayfs
cache: https://git.centos.org/repo/pkgs/fuse-overlayfs
ref: be252e077425a3307b64012128613306d2cfeddd
arches: [aarch64, i686, ppc64le, x86_64]
libslirp:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/libslirp
cache: https://git.centos.org/repo/pkgs/libslirp
ref: 03fb499d131c7221b3406245a97e25ef55d4a6a0
buildorder: 18446744073709551615
arches: [aarch64, i686, ppc64le, x86_64]
oci-seccomp-bpf-hook:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/oci-seccomp-bpf-hook
cache: https://git.centos.org/repo/pkgs/oci-seccomp-bpf-hook
ref: f39f4432291a3d494fff68a346312072fb5c3a0f
arches: [aarch64, i686, ppc64le, x86_64]
podman:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/podman
cache: https://git.centos.org/repo/pkgs/podman
ref: 1d34933d39a8e7bf136a37ab91f6ee076d183744
arches: [aarch64, i686, ppc64le, x86_64]
python-podman:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/python-podman
cache: https://git.centos.org/repo/pkgs/python-podman
ref: c702e898636a4702b1dfd1b4114704df53f4c3d0
arches: [aarch64, i686, ppc64le, x86_64]
runc:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/runc
cache: https://git.centos.org/repo/pkgs/runc
ref: 1461459ff374b8044b306373d72198b4d522d7a4
arches: [aarch64, i686, ppc64le, x86_64]
skopeo:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/skopeo
cache: https://git.centos.org/repo/pkgs/skopeo
ref: 7a1b1a98208e14debaa72eb508bc0190b29b8217
arches: [aarch64, i686, ppc64le, x86_64]
slirp4netns:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/slirp4netns
cache: https://git.centos.org/repo/pkgs/slirp4netns
ref: 96c14e14a363ccce188e36fee0b70dd5feced767
arches: [aarch64, i686, ppc64le, x86_64]
toolbox:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/toolbox
cache: https://git.centos.org/repo/pkgs/toolbox
ref: 71cf876b6509f6864ccccb0f2ee913e2eb9dc159
arches: [aarch64, i686, ppc64le, x86_64]
udica:
rationale: Primary component of this module
repository: git+https://git.centos.org/rpms/udica
cache: https://git.centos.org/repo/pkgs/udica
ref: 7494166e74694ca20a27084c29e377de4542f357
arches: [aarch64, i686, ppc64le, x86_64]
...

View File

@ -1,110 +0,0 @@
---
document: modulemd
version: 2
data:
name: container-tools
stream: 3.0
summary: >-
Stable versions of podman 3.0, buildah 1.19, skopeo 1.2, runc, conmon, etc as
well as dependencies such as container-selinux built and tested together, and
supported as documented on the Application Stream lifecycle page.
description: >-
Stable versions of podman 3.0, buildah 1.19, skopeo 1.2, runc, conmon, CRIU,
Udica, etc as well as dependencies such as container-selinux built and tested
together. Released with RHEL 8.4 and supported for 24 months. During the
support lifecycle, back ports of important, critical vulnerabilities (CVEs,
RHSAs) and bug fixes (RHBAs) are provided to this stream, and versions do not
move forward. For more information see:
https://access.redhat.com/support/policy/updates/containertools
license:
module:
- MIT
dependencies:
- buildrequires:
platform: [el9beta]
requires:
platform: [el9beta]
references:
community: https://github.com/projectatomic
documentation: https://projectatomic.io
tracker: https://github.com/projectatomic
profiles:
common:
rpms:
- buildah
- cockpit-podman
- conmon
- container-selinux
- containernetworking-plugins
- crun
- fuse-overlayfs
- podman
- runc
- skopeo
- slirp4netns
- toolbox
- udica
api:
rpms:
- buildah
- conmon
- container-selinux
- containernetworking-plugins
- containers-common
- fuse-overlayfs
- podman
- podman-docker
- podman-manpages
- podman-remote
- runc
- skopeo
- slirp4netns
buildopts:
rpms:
macros: |
%_with_ignore_tests 1
components:
rpms:
buildah:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
cockpit-podman:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
conmon:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
container-selinux:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
containernetworking-plugins:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
crun:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
fuse-overlayfs:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
oci-seccomp-bpf-hook:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
podman:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
runc:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
skopeo:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
slirp4netns:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
toolbox:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
udica:
rationale: Primary component of this module
ref: stream-container-tools-3.0-rhel-9.0.0-beta
...

View File

@ -1,8 +0,0 @@
# recipients: jnovy, santiago, lsm5
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate_modules
subject_type: redhat-module
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.redhat-module.tier0.functional}

View File

@ -1,12 +0,0 @@
---
# Sigh; RHEL8 doesn't have BATS
- name: bats | fetch and unpack tarball
unarchive:
src: https://github.com/bats-core/bats-core/archive/v1.1.0.tar.gz
dest: /root
remote_src: true
- name: bats | install
command: ./install.sh /usr/local
args:
chdir: /root/bats-core-1.1.0

View File

@ -1,36 +0,0 @@
# standard role for fetching a package dist-git into the Ansible controller for running its tests
# variables:
# - package: dist-git source package name
# - modulemd: file name of module metadata description, for getting correct branch name
---
- name: Install git
dnf: name=git state=installed
- name: Clone package dist-git
git:
repo: git://pkgs.devel.redhat.com/rpms/{{ package }}
# read package branch from module md file
version: "{{ (lookup('file', modulemd) | from_yaml)['data']['components']['rpms'][package]['ref'] }}"
dest: "/tmp/packages/{{ package }}"
# fetch can only get a single file, so we have to do this in a loop
- name: Get package test file list
find:
paths: "/tmp/packages/{{ package }}/tests"
recurse: yes
register: test_files_to_fetch
- name: Copy package test files to controller
fetch:
src: "{{ item.path }}"
# strip off /tmp/ prefix
dest: "{{ playbook_dir }}/{{ item.path[5:] }}"
flat: yes
with_items: "{{ test_files_to_fetch.files }}"
- name: Copy package files
fetch:
src: "/tmp/packages/{{ package }}/{{ item }}"
dest: "{{ playbook_dir }}/packages/{{ package }}/"
flat: yes
with_items: ["{{ package }}.spec", "sources"]

View File

@ -1,7 +0,0 @@
---
- name: create nonroot user
user:
name: testuser
shell: /bin/bash
- name: enable linger
command: loginctl enable-linger testuser

View File

@ -1,37 +0,0 @@
#!/bin/bash
#
# setup and teardown helpers for buildah test
#
function setup() {
REGISTRY_FQIN=quay.io/libpod/registry:2
AUTHDIR=/tmp/buildah-tests-auth.$$
mkdir -p $AUTHDIR
CERT=$AUTHDIR/domain.crt
if [ ! -e $CERT ]; then
openssl req -newkey rsa:4096 -nodes -sha256 \
-keyout $AUTHDIR/domain.key -x509 -days 2 \
-out $AUTHDIR/domain.crt \
-subj "/C=US/ST=Foo/L=Bar/O=Red Hat, Inc./CN=localhost"
fi
if [ ! -e $AUTHDIR/htpasswd ]; then
htpasswd -Bbn testuser testpassword > $AUTHDIR/htpasswd
fi
podman run -d -p 5000:5000 \
--name registry \
-v $AUTHDIR:/auth:Z \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/auth/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/auth/domain.key \
$REGISTRY_FQIN
}
function teardown() {
podman rm -f registry
}

View File

@ -1,103 +0,0 @@
#!/bin/bash
#
# Run bats tests for a given $TEST_PACKAGE, e.g. buildah, podman
#
# This is invoked by the 'run_bats_tests' role; we assume that
# the package foo has a foo-tests subpackage which provides the
# directory /usr/share/foo/test/system, containing one or more .bats
# test files.
#
export PATH=/usr/local/bin:/usr/sbin:/usr/bin
# Keep all logs in /tmp/artifacts - this seems to be an undocumented
# (and therefore dangerous and unreliable) convention of the Standard
# Test Roles package. As of 2020-05 we have to coexist with cockpit
# which uses standard-test-basic, which means we need to conform to
# its conventions.
# We rely on our parent playbook to create /tmp/artifacts and make it
# world-writable so nonroot tests can use it.
TEST_LOG_TXT=/tmp/artifacts/test.log
TEST_LOG_YML=/tmp/artifacts/results.yml
# "podman root" -> "podman-root"
testname_oneword=${TEST_NAME// /-}
FULL_LOG=/tmp/artifacts/test.${testname_oneword}.debug.log
BATS_LOG=/tmp/artifacts/test.${testname_oneword}.bats.log
rm -f $FULL_LOG $BATS_LOG
touch $FULL_LOG $BATS_LOG
exec &> $FULL_LOG
# Log program versions
echo "Packages:"
(
uname -r
rpm -qa |\
egrep 'buildah|conmon|container|crun|iptable|podman|runc|skopeo|slirp|systemd' |\
sort
) | sed -e 's/^/ /'
echo "------------------------------"
printenv | sort
testdir=/usr/share/${TEST_PACKAGE}/test/system
if ! cd $testdir; then
echo "FAIL ${TEST_NAME} : cd $testdir" >> $TEST_LOG_TXT
echo "- { test: '${TEST_NAME}', result: error, logs: [ $(basename $FULL_LOG) ] }" >> $TEST_LOG_YML
exit 0
fi
if [ -e /tmp/helper.sh ]; then
echo "------------------------------"
echo ". /tmp/helper.sh"
. /tmp/helper.sh
fi
if [ "$(type -t setup)" = "function" ]; then
echo "------------------------------"
echo "\$ setup"
setup
if [ $? -ne 0 ]; then
echo "FAIL ${TEST_NAME} : setup" >> $TEST_LOG_TXT
echo "- { test: '${TEST_NAME}', result: error, logs: [ $(basename $FULL_LOG) ] }" >> $TEST_LOG_YML
exit 0
fi
fi
echo "------------------------------"
echo "\$ bats ."
TMPDIR=/var/tmp bats . &> $BATS_LOG
rc=$?
echo "------------------------------"
echo "bats completed with status $rc"
status=PASS
if [ $rc -ne 0 ]; then
status=FAIL
fi
echo "${status} ${TEST_NAME}" >> $TEST_LOG_TXT
# Append a stanza to results.yml
(
echo "- test: ${TEST_NAME}"
# pass/fail - the ',,' (comma comma) converts to lower-case
echo " result: ${status,,}"
echo " logs:"
echo " - $(basename $BATS_LOG)"
echo " - $(basename $FULL_LOG)"
) >> $TEST_LOG_YML
if [ "$(type -t teardown)" = "function" ]; then
echo "------------------------------"
echo "\$ teardown"
teardown
fi
# FIXME: for CI purposes, always exit 0. This allows subsequent tests.
exit 0

View File

@ -1,50 +0,0 @@
---
# Create a directory for artifacts on remote host
- name: create remote artifacts directory
file:
path: /tmp/artifacts
state: directory
mode: 0777
# Create empty results file, world-writable so rootless test can log to it
- name: initialize test.log file
copy: dest=/tmp/artifacts/test.log content='' force=yes mode=0666
# Same with results.yml file
- name: initialize results.yml file
copy: dest=/tmp/artifacts/results.yml content='results:\n' force=yes mode=0666
- name: execute tests
include: run_one_test.yml
with_items: "{{ tests }}"
loop_control:
loop_var: test
- name: pull test.log and results.yml
fetch:
src: "{{ item }}"
dest: "{{ artifacts }}/"
flat: yes
with_items:
- /tmp/artifacts/test.log
- /tmp/artifacts/results.yml
# Copied from standard-test-basic
- name: check results
shell: grep "^FAIL" /tmp/artifacts/test.log
register: test_fails
# Never fail at this step. Just store result of tests.
failed_when: False
- name: preserve results
set_fact:
role_result_failed: "{{ (test_fails.stdout|d|length > 0) or (test_fails.stderr|d|length > 0) }}"
role_result_msg: "{{ test_fails.stdout|d('tests failed.') }}"
- name: display results
vars:
msg: |
Tests failed: {{ role_result_failed|d('Undefined') }}
Tests msg: {{ role_result_msg|d('None') }}
debug:
msg: "{{ msg.split('\n') }}"

View File

@ -1,52 +0,0 @@
---
- name: "{{ test.name }} | install test packages"
dnf: name="{{ test.package }}-tests" state=installed
- name: "{{ test.name }} | define helper variables"
set_fact:
test_name_oneword: "{{ test.name | replace(' ','-') }}"
# UGH. This is necessary because our caller sets some environment variables
# and we need to set a few more based on other caller variables; then we
# need to combine the two dicts when running the test. This seems to be
# the only way to do it in ansible.
- name: "{{ test.name }} | define local environment"
set_fact:
local_environment:
TEST_NAME: "{{ test.name }}"
TEST_PACKAGE: "{{ test.package }}"
TEST_ENV: "{{ test.environment }}"
- name: "{{ test.name }} | setup/teardown helper | see if exists"
local_action: stat path={{ role_path }}/files/helper.{{ test_name_oneword }}.sh
register: helper
- name: "{{ test.name }} | setup/teardown helper | install"
copy: src=helper.{{ test_name_oneword }}.sh dest=/tmp/helper.sh
when: helper.stat.exists
- name: "{{ test.name }} | run test"
script: ./run_bats_tests.sh
args:
chdir: /usr/share/{{ test.package }}/test/system
become: "{{ true if test.become is defined else false }}"
become_user: testuser
environment: "{{ local_environment | combine(test.environment) }}"
- name: "{{ test.name }} | pull logs"
fetch:
src: "/tmp/artifacts/test.{{ test_name_oneword }}.{{ item }}.log"
dest: "{{ artifacts }}/"
flat: yes
with_items:
- bats
- debug
- name: "{{ test.name }} | remove remote logs and helpers"
file:
dest=/tmp/{{ item }}
state=absent
with_items:
- artifacts/test.{{ test_name_oneword }}.bats.log
- artifacts/test.{{ test_name_oneword }}.debug.log
- helper.sh

View File

@ -1,48 +0,0 @@
---
- hosts: localhost
tags: classic
vars:
- artifacts: ./artifacts
roles:
- role: bats_installed
- role: nonroot_user
- role: run_bats_tests
tests:
- name: podman root
package: podman
environment:
PODMAN: /usr/bin/podman
- name: podman nonroot
package: podman
environment:
PODMAN: /usr/bin/podman
become: true
#- name: podman-remote root
#package: podman
#environment:
# PODMAN: /usr/bin/podman-remote
- name: buildah root
package: buildah
environment:
BUILDAH_BINARY: /usr/bin/buildah
IMGTYPE_BINARY: /usr/bin/buildah-imgtype
COPY_BINARY: /usr/bin/buildah-copy
- name: skopeo root
package: skopeo
environment:
SKOPEO_BINARY: /usr/bin/skopeo
# cockpit-podman
- role: fetch_pkg
package: cockpit-podman
modulemd: ../container-tools.yaml
tasks:
- include_role:
name: ./packages/cockpit-podman/tests/roles/test
vars:
pkgdir: ./packages/cockpit-podman/
test_script_dir: tests