summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cirrus.yml35
-rw-r--r--contrib/cirrus/container_test.sh17
-rwxr-xr-xcontrib/cirrus/integration_test.sh2
-rw-r--r--contrib/cirrus/lib.sh5
-rwxr-xr-xcontrib/cirrus/rootless_test.sh15
-rwxr-xr-xcontrib/cirrus/setup_container_environment.sh7
-rwxr-xr-xcontrib/cirrus/setup_environment.sh2
7 files changed, 63 insertions, 20 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index e36b4f484..28aa528a4 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -292,7 +292,7 @@ testing_task:
# This task executes tests under unique environments/conditions
-special_testing_task:
+special_testing_rootless_task:
depends_on:
- "gating"
@@ -303,9 +303,11 @@ special_testing_task:
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\*\*\*\s*CIRRUS:\s*TEST\s*IMAGES\s*\*\*\*.*'
env:
+ SPECIALMODE: 'rootless' # See docs
+
matrix:
- SPECIALMODE: 'rootless' # See docs
- SPECIALMODE: 'in_podman' # See docs
+ TEST_REMOTE_CLIENT: true
+ TEST_REMOTE_CLIENT: false
timeout_in: 60m
@@ -322,6 +324,33 @@ special_testing_task:
failed_audit_log_script: 'cat /var/log/audit/audit.log || cat /var/log/kern.log || echo "Uh oh, cat audit.log failed"'
failed_journalctl_b_script: 'journalctl -b || echo "Uh oh, journalctl -b failed"'
+special_testing_in_podman_task:
+
+ depends_on:
+ - "gating"
+ - "varlink_api"
+ - "vendor"
+ - "build_each_commit"
+
+ only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\*\*\*\s*CIRRUS:\s*TEST\s*IMAGES\s*\*\*\*.*'
+
+ env:
+ SPECIALMODE: 'in_podman' # See docs
+
+ timeout_in: 60m
+
+ setup_environment_script: '$SCRIPT_BASE/setup_environment.sh |& ${TIMESTAMP}'
+ integration_test_script: '$SCRIPT_BASE/integration_test.sh |& ${TIMESTAMP}'
+ df_script: '${DFCMD}'
+ audit_log_script: 'cat /var/log/audit/audit.log || cat /var/log/kern.log'
+ journalctl_b_script: 'journalctl -b'
+
+ on_failure:
+ failed_master_script: '$CIRRUS_WORKING_DIR/$SCRIPT_BASE/notice_master_failure.sh'
+ # Job has already failed, don't fail again and miss collecting data
+ failed_df_script: '${DFCMD}'
+ failed_audit_log_script: 'cat /var/log/audit/audit.log || cat /var/log/kern.log || echo "Uh oh, cat audit.log failed"'
+ failed_journalctl_b_script: 'journalctl -b || echo "Uh oh, journalctl -b failed"'
# Because system tests are stored within the repository, it is sometimes
# necessary to execute them within a PR to validate changes.
diff --git a/contrib/cirrus/container_test.sh b/contrib/cirrus/container_test.sh
index 6bd925f17..a0542f4a0 100644
--- a/contrib/cirrus/container_test.sh
+++ b/contrib/cirrus/container_test.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-set -xeuo pipefail
+set -xeo pipefail
export GOPATH=/var/tmp/go
export PATH=$HOME/gopath/bin:$PATH:$GOPATH/bin
@@ -32,10 +32,10 @@ integrationtest=0
unittest=0
validate=0
options=0
-noremote=0
+remote=0
install_tools_made=0
-while getopts "bitnuv" opt; do
+while getopts "bituv" opt; do
case "$opt" in
b) build=1
options=1
@@ -46,9 +46,6 @@ while getopts "bitnuv" opt; do
t) integrationtest=1
options=1
;;
- n) noremote=1
- options=1
- ;;
u) unittest=1
options=1
;;
@@ -58,6 +55,12 @@ while getopts "bitnuv" opt; do
esac
done
+# The TEST_REMOTE_CLIENT environment variable decides whether
+# to test varlinke
+if [[ "$TEST_REMOTE_CLIENT" == "true" ]]; then
+ remote=1
+fi
+
# If no options are passed, do everything
if [ $options -eq 0 ]; then
build=1
@@ -131,7 +134,7 @@ if [ $integrationtest -eq 1 ]; then
make TAGS="${TAGS}" test-binaries
make varlink_generate
make ginkgo $INTEGRATION_TEST_ENVS
- if [ $noremote -eq 0 ]; then
+ if [ $remote -eq 1 ]; then
make ginkgo-remote $INTEGRATION_TEST_ENVS
fi
fi
diff --git a/contrib/cirrus/integration_test.sh b/contrib/cirrus/integration_test.sh
index e7f582b42..88e57fa53 100755
--- a/contrib/cirrus/integration_test.sh
+++ b/contrib/cirrus/integration_test.sh
@@ -19,7 +19,7 @@ then
-e "CONMON_BINARY=/usr/libexec/podman/conmon" \
-e "DIST=$OS_RELEASE_ID" \
-e "CONTAINER_RUNTIME=$CONTAINER_RUNTIME" \
- ${OS_RELEASE_ID}podmanbuild bash $GOSRC/$SCRIPT_BASE/container_test.sh -b -i -t -n
+ $IN_PODMAN_IMAGE bash $GOSRC/$SCRIPT_BASE/container_test.sh -b -i -t
exit $?
elif [[ "$SPECIALMODE" == "rootless" ]]
diff --git a/contrib/cirrus/lib.sh b/contrib/cirrus/lib.sh
index 334202aa9..462fa332a 100644
--- a/contrib/cirrus/lib.sh
+++ b/contrib/cirrus/lib.sh
@@ -66,7 +66,7 @@ PRIOR_FEDORA_BASE_IMAGE="fedora-cloud-base-28-1-1-1544474897"
BUILT_IMAGE_SUFFIX="${BUILT_IMAGE_SUFFIX:--$CIRRUS_REPO_NAME-${CIRRUS_BUILD_ID}}"
# Safe env. vars. to transfer from root -> $ROOTLESS_USER (go env handled separetly)
-ROOTLESS_ENV_RE='(CIRRUS_.+)|(ROOTLESS_.+)|(.+_IMAGE.*)|(.+_BASE)|(.*DIRPATH)|(.*FILEPATH)|(SOURCE.*)|(DEPEND.*)|(.+_DEPS_.+)|(OS_REL.*)|(.+_ENV_RE)|(TRAVIS)|(CI.+)'
+ROOTLESS_ENV_RE='(CIRRUS_.+)|(ROOTLESS_.+)|(.+_IMAGE.*)|(.+_BASE)|(.*DIRPATH)|(.*FILEPATH)|(SOURCE.*)|(DEPEND.*)|(.+_DEPS_.+)|(OS_REL.*)|(.+_ENV_RE)|(TRAVIS)|(CI.+)|(TEST_REMOTE.*)'
# Unsafe env. vars for display
SECRET_ENV_RE='(IRCID)|(ACCOUNT)|(^GC[EP]..+)|(SSH)'
@@ -74,6 +74,9 @@ SPECIALMODE="${SPECIALMODE:-none}"
TEST_REMOTE_CLIENT="${TEST_REMOTE_CLIENT:-false}"
export CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-podman}
+# IN_PODMAN container image
+IN_PODMAN_IMAGE="quay.io/libpod/in_podman:latest"
+
# When running as root, this may be empty or not, as a user, it MUST be set.
if [[ "$USER" == "root" ]]
then
diff --git a/contrib/cirrus/rootless_test.sh b/contrib/cirrus/rootless_test.sh
index 3b668034b..ef0d05cfd 100755
--- a/contrib/cirrus/rootless_test.sh
+++ b/contrib/cirrus/rootless_test.sh
@@ -2,6 +2,14 @@
set -e
+remote=0
+
+# The TEST_REMOTE_CLIENT environment variable decides whether
+# to test varlinke
+if [[ "$TEST_REMOTE_CLIENT" == "true" ]]; then
+ remote=1
+fi
+
source $(dirname $0)/lib.sh
if [[ "$UID" == "0" ]]
@@ -25,5 +33,8 @@ cd "$GOSRC"
make
make varlink_generate
make test-binaries
-make ginkgo
-make ginkgo-remote
+if [ $remote -eq 0 ]; then
+ make ginkgo
+else
+ make ginkgo-remote
+fi
diff --git a/contrib/cirrus/setup_container_environment.sh b/contrib/cirrus/setup_container_environment.sh
index eda6f6167..c268c162e 100755
--- a/contrib/cirrus/setup_container_environment.sh
+++ b/contrib/cirrus/setup_container_environment.sh
@@ -5,9 +5,6 @@ source $(dirname $0)/lib.sh
req_env_var GOSRC OS_RELEASE_ID CONTAINER_RUNTIME
-DIST=$OS_RELEASE_ID
-IMAGE=${DIST}podmanbuild
-
# Since CRIU 3.11 has been pushed to Fedora 28 the checkpoint/restore
# test cases are actually run. As CRIU uses iptables to lock and unlock
# the network during checkpoint and restore it needs the following two
@@ -15,5 +12,5 @@ IMAGE=${DIST}podmanbuild
modprobe ip6table_nat || :
modprobe iptable_nat || :
-# Build the test image
-${CONTAINER_RUNTIME} build -t ${IMAGE} -f Dockerfile.${DIST} .
+# Pull the test image
+${CONTAINER_RUNTIME} pull ${IN_PODMAN_IMAGE}
diff --git a/contrib/cirrus/setup_environment.sh b/contrib/cirrus/setup_environment.sh
index f40405e8d..13bce506a 100755
--- a/contrib/cirrus/setup_environment.sh
+++ b/contrib/cirrus/setup_environment.sh
@@ -87,7 +87,7 @@ case "$SPECIALMODE" in
fi
;;
in_podman) # Assumed to be Fedora
- dnf install -y podman buildah
+ dnf install -y podman
$SCRIPT_BASE/setup_container_environment.sh
;;
*)