mirror of https://github.com/containers/podman.git
				
				
				
			
		
			
				
	
	
		
			145 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
#!/bin/bash
 | 
						|
set -xeuo pipefail
 | 
						|
 | 
						|
export GOPATH=/go
 | 
						|
export PATH=$HOME/gopath/bin:$PATH:$GOPATH/bin
 | 
						|
export GOSRC=$GOPATH/src/github.com/containers/libpod
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
pwd
 | 
						|
 | 
						|
# -i install
 | 
						|
# -b build
 | 
						|
# -t integration test
 | 
						|
# -u unit test
 | 
						|
# -v validate
 | 
						|
# -p run python tests
 | 
						|
 | 
						|
build=0
 | 
						|
install=0
 | 
						|
integrationtest=0
 | 
						|
unittest=0
 | 
						|
validate=0
 | 
						|
runpython=0
 | 
						|
options=0
 | 
						|
install_tools_made=0
 | 
						|
 | 
						|
while getopts "biptuv" opt; do
 | 
						|
    case "$opt" in
 | 
						|
    b) build=1
 | 
						|
       options=1
 | 
						|
       ;;
 | 
						|
    i) install=1
 | 
						|
       options=1
 | 
						|
       ;;
 | 
						|
    p) runpython=1
 | 
						|
       options=1
 | 
						|
        ;;
 | 
						|
    t) integrationtest=1
 | 
						|
       options=1
 | 
						|
       ;;
 | 
						|
    u) unittest=1
 | 
						|
       options=1
 | 
						|
       ;;
 | 
						|
    v) validate=1
 | 
						|
       options=1
 | 
						|
       ;;
 | 
						|
    esac
 | 
						|
done
 | 
						|
 | 
						|
# 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/ostree_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
 | 
						|
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
 | 
						|
    if [ $runpython -eq 1 ]; then
 | 
						|
        make TAGS="${TAGS}" install.python PREFIX=/usr ETCDIR=/etc
 | 
						|
    fi
 | 
						|
 | 
						|
fi
 | 
						|
 | 
						|
# Run integration tests
 | 
						|
if [ $integrationtest -eq 1 ]; then
 | 
						|
    make TAGS="${TAGS}" test-binaries
 | 
						|
    make varlink_generate GOPATH=/go
 | 
						|
    if [ $runpython -eq 1 ]; then
 | 
						|
        make clientintegration GOPATH=/go
 | 
						|
    fi
 | 
						|
    make ginkgo GOPATH=/go $INTEGRATION_TEST_ENVS
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
exit 0
 |