forked from arquillian/ike-prow-plugins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cico_setup.sh
executable file
·83 lines (65 loc) · 1.85 KB
/
cico_setup.sh
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
# Output command before executing
set -x
# Exit on error
set -e
# Source environment variables of the jenkins slave
# that might interest this worker.
function load_jenkins_vars() {
if [ -e "jenkins-env" ]; then
cat jenkins-env \
| grep -E "(DEVSHIFT_TAG_LEN|DEVSHIFT_USERNAME|DEVSHIFT_PASSWORD|JENKINS_URL|GIT_BRANCH|GIT_COMMIT|BUILD_NUMBER|ghprbSourceBranch|ghprbActualCommit|BUILD_URL|ghprbPullId)=" \
| sed 's/^/export /g' \
> ~/.jenkins-env
source ~/.jenkins-env
fi
}
function install_deps() {
# We need to disable selinux for now, XXX
/usr/sbin/setenforce 0 || :
yum -y install git docker make
service docker start
echo 'CICO: Dependencies installed'
}
function run_build() {
trap cleanup_env EXIT;
make docker-build
echo "CICO: ran build"
}
function prepare() {
make docker-start
make docker-tools
make docker-install
}
function cleanup_env {
EXIT_CODE=$?
echo "CICO: Cleanup environment"
make docker-rm
echo "CICO: Exiting with $EXIT_CODE"
}
function deploy() {
export REGISTRY="push.registry.devshift.net"
export PLUGINS='work-in-progress test-keeper pr-sanitizer'
if [ "${TARGET}" = "rhel" ]; then
export DEPLOY_DOCKERFILE='Dockerfile.deploy.rhel'
export DOCKER_REPO="osio-prod/ike-prow-plugins"
fi
# Login first
if [ -n "${DEVSHIFT_USERNAME}" -a -n "${DEVSHIFT_PASSWORD}" ]; then
docker login -u ${DEVSHIFT_USERNAME} -p ${DEVSHIFT_PASSWORD} ${REGISTRY}
else
echo "Could not login, missing credentials for the registry"
fi
# compile, build and deploy the hook
export TAG=$(echo ${GIT_COMMIT} | cut -c1-${DEVSHIFT_TAG_LEN})
make docker-build-hook
make deploy-hook
# compile, build and deploy plugins
make deploy-plugins
echo 'CICO: Image pushed, ready to update deployed app'
}
function cico_setup() {
load_jenkins_vars;
install_deps;
prepare;
}