mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-09-13 11:07:50 +00:00
Previously automation always dropped the minor version number for distributions. This was intended for presentation and conditional simplicity. Bash does not support non-integer comparison natively. With the release of version 20.10, supporting testing with it and the LTS release (20.04) requires scripts to consider minor version numbers for Ubuntu VMs. This is necessary because many times in the past, some behaviors needed to be conditional on the release version number. With this commit, the images and embedded scripts/tooling uses an altered format of `$UBUNTU_NAME', `$PRIOR_UBUNTU_NAME`, and (crucially) `$OS_RELEASE_VER` and `$OS_REL_VER`. Any `.` characters appearing in the official version (from `/etc/os-release`) are dropped, and the result is concatenated. For example the current Ubuntu LTS version is `20.04`. Prior to this commit, `$OS_RELEASE_VER` would have been `20`. With this change, `$OS_RELEASE_VER` will now show `2004`. Similarly `20.10` is shown as `2010`. Signed-off-by: Chris Evich <cevich@redhat.com>
85 lines
2.7 KiB
Bash
Executable file
85 lines
2.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
# shellcheck source=contrib/cirrus/lib.sh
|
|
source $(dirname $0)/lib.sh
|
|
|
|
req_env_vars CIRRUS_WORKING_DIR OS_RELEASE_ID
|
|
|
|
# Assume there are other log collection commands to follow - Don't
|
|
# let one break another that may be useful, but also keep any
|
|
# actual script-problems fatal so they are noticed right away.
|
|
showrun() {
|
|
echo '+ '$(printf " %q" "$@")
|
|
set +e
|
|
echo '------------------------------------------------------------'
|
|
"$@"
|
|
local status=$?
|
|
[[ $status -eq 0 ]] || \
|
|
echo "[ rc = $status -- proceeding anyway ]"
|
|
echo '------------------------------------------------------------'
|
|
set -e
|
|
}
|
|
|
|
case $1 in
|
|
audit)
|
|
case $OS_RELEASE_ID in
|
|
ubuntu) showrun cat /var/log/kern.log ;;
|
|
fedora) showrun cat /var/log/audit/audit.log ;;
|
|
*) bad_os_id_ver ;;
|
|
esac
|
|
;;
|
|
df) showrun df -lhTx tmpfs ;;
|
|
ginkgo) showrun cat $CIRRUS_WORKING_DIR/test/e2e/ginkgo-node-*.log ;;
|
|
journal) showrun journalctl -b ;;
|
|
podman) showrun ./bin/podman system info ;;
|
|
server)
|
|
msg "(Trailing 100 lines of $PODMAN_SERVER_LOG)"
|
|
if [[ -r "$PODMAN_SERVER_LOG" ]]; then tail -100 $PODMAN_SERVER_LOG; fi
|
|
;;
|
|
packages)
|
|
# These names are common to Fedora and Ubuntu
|
|
PKG_NAMES=(\
|
|
conmon \
|
|
containernetworking-plugins \
|
|
containers-common \
|
|
criu \
|
|
crun \
|
|
golang \
|
|
podman \
|
|
runc \
|
|
skopeo \
|
|
slirp4netns \
|
|
)
|
|
case $OS_RELEASE_ID in
|
|
fedora)
|
|
cat /etc/fedora-release
|
|
PKG_LST_CMD='rpm -q --qf=%{N}-%{V}-%{R}-%{ARCH}\n'
|
|
PKG_NAMES+=(\
|
|
container-selinux \
|
|
libseccomp \
|
|
)
|
|
;;
|
|
ubuntu)
|
|
cat /etc/issue
|
|
PKG_LST_CMD='dpkg-query --show --showformat=${Package}-${Version}-${Architecture}\n'
|
|
PKG_NAMES+=(\
|
|
cri-o-runc \
|
|
libseccomp2 \
|
|
)
|
|
;;
|
|
*) bad_os_id_ver ;;
|
|
esac
|
|
echo "Kernel: " $(uname -r)
|
|
echo "Cgroups: " $(stat -f -c %T /sys/fs/cgroup)
|
|
# Any not-present packages will be listed as such
|
|
$PKG_LST_CMD "${PKG_NAMES[@]}" | sort -u
|
|
;;
|
|
time)
|
|
# Assumed to be empty/undefined outside of Cirrus-CI (.cirrus.yml)
|
|
# shellcheck disable=SC2154
|
|
if [[ -r "$STATS_LOGFILE" ]]; then cat "$STATS_LOGFILE"; fi
|
|
;;
|
|
*) die "Warning, $(basename $0) doesn't know how to handle the parameter '$1'"
|
|
esac
|