github.com/alloyci/alloy-runner@v1.0.1-0.20180222164613-925503ccafd6/tests/test_installation.sh (about)

     1  #!/bin/bash
     2  
     3  if [[ $# -lt 2 ]]; then
     4  	echo "usage $0: <image> <file> <upgrade>"
     5  	exit 1
     6  fi
     7  
     8  set -xe
     9  set -o pipefail
    10  
    11  IMAGE="$1"
    12  INSTALL_FILE="$2"
    13  UPGRADE="$3"
    14  
    15  if [[ ! -f "$INSTALL_FILE" ]]; then
    16  	echo "$INSTALL_FILE: not found"
    17  	exit 1
    18  fi
    19  
    20  ID=gitlab_runner
    21  docker rm -f -v $ID || :
    22  docker run -d --name $ID --privileged "$IMAGE" /sbin/init
    23  # trap "docker rm -f -v $ID" EXIT
    24  cat "$INSTALL_FILE" | docker exec -i $ID bash -c "cat > /$(basename $INSTALL_FILE)"
    25  
    26  case $IMAGE in
    27  	debian:*|ubuntu-upstart:*)
    28  		docker exec $ID apt-get update -y
    29  		docker exec $ID apt-get install -y curl procps
    30  		if [[ -n "$UPGRADE" ]]; then
    31  			curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | docker exec -i $ID bash
    32  			docker exec $ID apt-get install -y gitlab-runner
    33  		fi
    34  		if ! docker exec $ID dpkg -i "/$(basename $INSTALL_FILE)"
    35  		then
    36  			docker exec $ID apt-get install -f -y
    37  			docker exec $ID dpkg -i "/$(basename $INSTALL_FILE)"
    38  		fi
    39  		;;
    40  
    41  	centos:*)
    42  		docker exec $ID yum install -y curl sysvinit-tools
    43  		if [[ -n "$UPGRADE" ]]; then
    44  			curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | docker exec -i $ID bash
    45  			docker exec $ID yum install -y gitlab-runner
    46  		fi
    47  		docker exec $ID yum localinstall -y "/$(basename $INSTALL_FILE)"
    48  		;;
    49  
    50  	*)
    51  		echo "ERROR: unsupported $IMAGE."
    52  esac
    53  
    54  if [[ -n "$UPGRADE" ]]; then
    55  	USER="gitlab_ci_multi_runner"
    56  else
    57  	USER="gitlab-runner"
    58  fi
    59  
    60  cat $(dirname $0)/test_script.sh | docker exec -i $ID bash -s "$USER"