diff options
author | Chris Evich <cevich@redhat.com> | 2020-06-25 17:38:33 -0400 |
---|---|---|
committer | Chris Evich <cevich@redhat.com> | 2020-10-02 11:53:04 -0400 |
commit | 2c9084e2245834094e14e9105e64b6062d70a0f1 (patch) | |
tree | e2e5c0be702cdae5919489fd9a1ed1b6f87d135a /contrib/cirrus/container_test.sh | |
parent | b58980a43ccfcef5134274c3963bf68cc51a4983 (diff) | |
download | podman-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.sh | 142 |
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 |