summaryrefslogtreecommitdiff
path: root/contrib/cirrus/container_test.sh
diff options
context:
space:
mode:
authorChris Evich <cevich@redhat.com>2020-06-25 17:38:33 -0400
committerChris Evich <cevich@redhat.com>2020-10-02 11:53:04 -0400
commit2c9084e2245834094e14e9105e64b6062d70a0f1 (patch)
treee2e5c0be702cdae5919489fd9a1ed1b6f87d135a /contrib/cirrus/container_test.sh
parentb58980a43ccfcef5134274c3963bf68cc51a4983 (diff)
downloadpodman-2c9084e2245834094e14e9105e64b6062d70a0f1.tar.gz
podman-2c9084e2245834094e14e9105e64b6062d70a0f1.tar.bz2
podman-2c9084e2245834094e14e9105e64b6062d70a0f1.zip
Cirrus: Implement podman automation 2.0
Reimplement CI-automation to remove accumulated technical-debt and optimize workflow. The task-dependency graph designed goal was to shorten it's depth and increase width (i.e. more parallelism). A reduction in redundant building (and 3rd party module download) was also realized by caching `$GOPATH` and `$GOCACHE` early on. This cache is then reused in favor of a fresh clone of the repository (when possible). Note: The system tests typically execute MUCH faster than the integration tests. However, contrary to a fail-fast/fail-early principal, they are executed last. This was implemented due to debug-ability related concerns/preferences of the primary (golang-centric) project developers. Signed-off-by: Chris Evich <cevich@redhat.com>
Diffstat (limited to 'contrib/cirrus/container_test.sh')
-rw-r--r--contrib/cirrus/container_test.sh142
1 files changed, 0 insertions, 142 deletions
diff --git a/contrib/cirrus/container_test.sh b/contrib/cirrus/container_test.sh
deleted file mode 100644
index 8ea66e63c..000000000
--- a/contrib/cirrus/container_test.sh
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/env bash
-set -xeo pipefail
-
-export GOPATH=/var/tmp/go
-export PATH=$HOME/gopath/bin:$PATH:$GOPATH/bin
-export GOSRC=$GOPATH/src/github.com/containers/podman
-
-DIST=${DIST:=""}
-CONTAINER_RUNTIME=${DIST:=""}
-
-source /etc/os-release
-
-INTEGRATION_TEST_ENVS=""
-
-# For all distributions not Fedora, we need to skip USERNS tests
-# for now.
-if [ "${ID}" != "fedora" ] || [ "${CONTAINER_RUNTIME}" != "" ]; then
- INTEGRATION_TEST_ENVS="SKIP_USERNS=1"
-fi
-
-echo "$(date --rfc-3339=seconds) $(basename $0) started with '$*' and RCLI='${RCLI}'"
-
-pwd
-
-# -i install
-# -b build
-# -t integration test
-# -u unit test
-# -v validate
-
-build=0
-install=0
-integrationtest=0
-unittest=0
-validate=0
-options=0
-remote=0
-install_tools_made=0
-
-while getopts "bituv" opt; do
- case "$opt" in
- b) build=1
- options=1
- ;;
- i) install=1
- options=1
- ;;
- t) integrationtest=1
- options=1
- ;;
- u) unittest=1
- options=1
- ;;
- v) validate=1
- options=1
- ;;
- esac
-done
-
-# The RCLI environment variable decides whether
-# to test varlinke
-if [[ "$RCLI" == "true" ]]; then
- remote=1
-fi
-
-# If no options are passed, do everything
-if [ $options -eq 0 ]; then
- build=1
- install=1
- integrationtest=1
- unittest=1
- validate=1
-fi
-
-# Make Install tools function used by multiple sections below
-make_install_tools () {
- # Only make the install tools once
- if [ $install_tools_made -eq 0 ]; then
- make install.tools TAGS="${TAGS}"
- fi
- install_tools_made=1
-}
-
-CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-none}
-
-if [ "${CONTAINER_RUNTIME}" == "none" ]; then
- mkdir -p /$GOPATH/src/github.com/containers/
- mv /var/tmp/checkout $GOSRC
- cd $GOSRC
- pwd
-fi
-
-
-export TAGS="seccomp $($GOSRC/hack/btrfs_tag.sh) $($GOSRC/hack/libdm_tag.sh) $($GOSRC/hack/btrfs_installed_tag.sh) $($GOSRC/hack/selinux_tag.sh)"
-
-# Validate
-if [ $validate -eq 1 ]; then
- make_install_tools
- # PAPR adds a merge commit, for testing, which fails the
- # short-commit-subject validation test, so tell git-validate.sh to only check
- # up to, but not including, the merge commit.
- export GITVALIDATE_TIP=$(cd $GOSRC; git log -2 --pretty='%H' | tail -n 1)
- make gofmt TAGS="${TAGS}"
-
- # Only check lint and gitvalidation on more recent
- # distros with updated git and tooling
- if [[ ${DIST} == "Fedora" ]]; then
- HEAD=$GITVALIDATE_TIP make -C $GOSRC .gitvalidation TAGS="${TAGS}"
- make lint
- fi
-fi
-
-# Unit tests
-if [ $unittest -eq 1 ]; then
- make localunit TAGS="${TAGS}"
-fi
-
-# Make Podman
-if [ $build -eq 1 ]; then
- make_install_tools
- make TAGS="${TAGS}" GOPATH=$GOPATH
- make podman-remote TAGS="${TAGS}" GOPATH=$GOPATH
-fi
-
-# Install Podman
-if [ $install -eq 1 ]; then
- make_install_tools
- make TAGS="${TAGS}" install.bin PREFIX=/usr ETCDIR=/etc
- make TAGS="${TAGS}" install.man PREFIX=/usr ETCDIR=/etc
- make TAGS="${TAGS}" install.cni PREFIX=/usr ETCDIR=/etc
- make TAGS="${TAGS}" install.systemd PREFIX=/usr ETCDIR=/etc
-fi
-
-# Run integration tests
-if [ $integrationtest -eq 1 ]; then
- make TAGS="${TAGS}" test-binaries
- make varlink_generate
- make localintegration $INTEGRATION_TEST_ENVS
- if [ $remote -eq 1 ]; then
- make remoteintegration $INTEGRATION_TEST_ENVS
- fi
-fi