~cupstream2distro-maintainers/cupstream2distro/charm

« back to all changes in this revision

Viewing changes to hooks/config-changed

  • Committer: Robert Bruce Park
  • Date: 2016-09-02 17:50:44 UTC
  • Revision ID: robert.park@canonical.com-20160902175044-f0e3so4uysxa1ree
Moved to bileto & git.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
 
3
 
HOOK_DIR=$(dirname $0)
4
 
. /etc/default/jenkins
5
 
. $HOOK_DIR/common
6
 
 
7
 
AS_JENKINS="sudo -i -u $JENKINS_USER"
8
 
 
9
 
export LAUNCHPAD_USER="$(config-get launchpad-user)"
10
 
config-get ppa-team > $JENKINS_HOME/ppa.team
11
 
 
12
 
 
13
 
set -eux
14
 
 
15
 
 
16
 
config-get backport-archive > /etc/apt/sources.list.d/backports.list
17
 
until apt-get update; do
18
 
    sleep 30
19
 
done
20
 
 
21
 
apt-get install -yq --force-yes bzr make
22
 
 
23
 
 
24
 
juju-log "Installing Jenkins plugins ..."
25
 
cp $HOOK_DIR/files/*.hpi $JENKINS_HOME/plugins/
26
 
 
27
 
 
28
 
open-port 873  # rsyncd
29
 
 
30
 
 
31
 
juju-log "Installing credentials ..."
32
 
GPG="$JENKINS_HOME/.gnupg"
33
 
SSH="$JENKINS_HOME/.ssh"
34
 
mkdir --parents "$GPG" "$SSH"
35
 
config-get ssh-private | base64 --decode > "$SSH/id_rsa"
36
 
config-get ssh-public  | base64 --decode > "$SSH/id_rsa.pub"
37
 
config-get gpg-private | base64 --decode > "$GPG/secring.gpg"
38
 
config-get gpg-public  | base64 --decode > "$GPG/pubring.gpg"
39
 
config-get lp-oauth    | base64 --decode > "$JENKINS_HOME/.launchpad.credentials"
40
 
chmod 0700 $GPG $SSH
41
 
chmod 0600 $GPG/* $SSH/* $JENKINS_HOME/.*cred*
42
 
 
43
 
 
44
 
for key in $SSH/id_rsa $SSH/id_rsa.pub $GPG/pubring.gpg $GPG/secring.gpg $JENKINS_HOME/.launchpad.credentials; do
45
 
    if ! [ -s "$key" ]; then
46
 
        # Don't fail on this because this is expected to be empty on initial
47
 
        # upgrade and then filled in after the fact
48
 
        juju-log "WARNING: $key is missing or empty."
49
 
    fi
50
 
done
51
 
 
52
 
 
53
 
HOSTS="$SSH/known_hosts"
54
 
if ! grep -qs bazaar.launchpad.net "$HOSTS"; then
55
 
    ssh-keyscan -t rsa bazaar.launchpad.net | tee    "$HOSTS"
56
 
    ssh-keyscan -t rsa ppa.launchpad.net    | tee -a "$HOSTS"
57
 
fi
58
 
 
59
 
 
60
 
# OpenStack creds
61
 
config-get os-username > "$JENKINS_HOME/os.username"
62
 
config-get os-auth-url > "$JENKINS_HOME/os.auth.url"
63
 
config-get os-region-name > "$JENKINS_HOME/os.region.name"
64
 
config-get os-password > "$JENKINS_HOME/os.password"
65
 
config-get os-tenant-name > "$JENKINS_HOME/os.tenant.name"
66
 
chmod 0600 $JENKINS_HOME/os.*
67
 
 
68
 
 
69
 
chown "$JENKINS_USER:$JENKINS_GROUP" -R "$JENKINS_HOME"
70
 
 
71
 
 
72
 
if [ "$CODE_BRANCH" != "$OLD_BRANCH" ]; then
73
 
    juju-log "Deleting $CODE_PATH because juju config changed..."
74
 
    rm -rf "$CODE_PATH"
75
 
fi
76
 
 
77
 
juju-log "Ensuring lightweight checkout of $CODE_BRANCH gets to $CODE_PATH ..."
78
 
[ -d "$CODE_PATH" ] || bzr checkout --lightweight $CODE_BRANCH $CODE_PATH 2>/dev/null
79
 
 
80
 
# `bzr update` will output like "Tree is up to date at revision 858 of branch foo" on stderr.
81
 
bzr update "$CODE_PATH" 2>"$BRANCH_INFO"
82
 
juju-log "$(tail -1 <"$BRANCH_INFO")"
83
 
(cd "$CODE_PATH" && make install && su -p "$JENKINS_USER" -c "make install-user HOME=$JENKINS_HOME")
84
 
 
85
 
# $BRANCH_MARKER is used by config-changed to know whether we need to switch
86
 
# to a different branch or simply pull new commits on the existing branch.
87
 
echo "$CODE_BRANCH" >"$BRANCH_MARKER"