File: test_installation.sh

package info (click to toggle)
gitlab-ci-multi-runner 14.10.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 31,248 kB
  • sloc: sh: 1,694; makefile: 384; asm: 79; ruby: 68
file content (60 lines) | stat: -rwxr-xr-x 1,521 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash

if [[ $# -lt 2 ]]; then
	echo "usage $0: <image> <file> <upgrade>"
	exit 1
fi

set -xe
set -o pipefail

IMAGE="$1"
INSTALL_FILE="$2"
UPGRADE="$3"

if [[ ! -f "$INSTALL_FILE" ]]; then
	echo "$INSTALL_FILE: not found"
	exit 1
fi

ID=gitlab_runner
docker rm -f -v $ID || :
docker run -d --name $ID --privileged "$IMAGE" /sbin/init
# trap "docker rm -f -v $ID" EXIT
cat "$INSTALL_FILE" | docker exec -i $ID bash -c "cat > /$(basename $INSTALL_FILE)"

case $IMAGE in
	debian:*|ubuntu-upstart:*)
		docker exec $ID apt-get update -y
		docker exec $ID apt-get install -y curl procps
		if [[ -n "$UPGRADE" ]]; then
			curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | docker exec -i $ID bash
			docker exec $ID apt-get install -y gitlab-runner
		fi
		if ! docker exec $ID dpkg -i "/$(basename $INSTALL_FILE)"
		then
			docker exec $ID apt-get install -f -y
			docker exec $ID dpkg -i "/$(basename $INSTALL_FILE)"
		fi
		;;

	centos:*)
		docker exec $ID yum install -y curl sysvinit-tools
		if [[ -n "$UPGRADE" ]]; then
			curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | docker exec -i $ID bash
			docker exec $ID yum install -y gitlab-runner
		fi
		docker exec $ID yum localinstall -y "/$(basename $INSTALL_FILE)"
		;;

	*)
		echo "ERROR: unsupported $IMAGE."
esac

if [[ -n "$UPGRADE" ]]; then
	USER="gitlab_ci_multi_runner"
else
	USER="gitlab-runner"
fi

cat $(dirname $0)/test_script.sh | docker exec -i $ID bash -s "$USER"