-
Notifications
You must be signed in to change notification settings - Fork 2
/
rubbernecker.yml
155 lines (141 loc) · 4.36 KB
/
rubbernecker.yml
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
---
resource_types:
- name: s3-iam
type: docker-image
check_every: 24h
source:
repository: governmentpaas/s3-resource
tag: fda60bf4c5f85e96c16f704e128e5ead9e84d30d
resources:
- name: rubbernecker
type: git
check_every: 10m
source:
uri: https://github.com/alphagov/paas-rubbernecker.git
branch: master
- name: rubbernecker-secrets
type: s3-iam
check_every: 24h
source:
bucket: ((state_bucket))
region_name: ((aws_region))
versioned_file: rubbernecker-secrets.yml
initial_version: "-"
jobs:
- name: test
plan:
- get: rubbernecker
trigger: true
- task: test
config:
platform: linux
image_resource:
type: docker-image
source:
repository: governmentpaas/rubbernecker-tools
tag: latest
inputs:
- name: rubbernecker
params:
PROJECT_DIR: /go/src/github.com/alphagov/paas-rubbernecker
run:
path: sh
args:
- -e
- -u
- -c
- |
mkdir -p /go/src/github.com/alphagov
ln -s "$(pwd)/rubbernecker" "${PROJECT_DIR}"
cd ${PROJECT_DIR}
make dependencies test
- name: deploy
serial: true
plan:
- get: rubbernecker
passed: ['test']
trigger: true
- get: rubbernecker-secrets
- task: build
config:
platform: linux
image_resource:
type: docker-image
source:
repository: governmentpaas/rubbernecker-tools
tag: latest
inputs:
- name: rubbernecker
outputs:
- name: files-to-push
params:
PROJECT_DIR: /go/src/github.com/alphagov/paas-rubbernecker
run:
path: sh
args:
- -e
- -u
- -c
- |
WORKDIR=$(pwd)
mkdir -p /go/src/github.com/alphagov
ln -s "$(pwd)/rubbernecker" "${PROJECT_DIR}"
cd ${PROJECT_DIR}
make dependencies build
echo "Copying files to destination..."
cp -pr . "${WORKDIR}/files-to-push"
ls -l "${WORKDIR}/files-to-push"
- task: push
config:
platform: linux
image_resource:
type: docker-image
source:
repository: governmentpaas/cf-cli
tag: 0eff5b6a9c092f865a2b19cc4e75a3b539b82fa2
inputs:
- name: files-to-push
- name: rubbernecker-secrets
params:
CF_API: https://api.((cf_system_domain))
CF_USER: ((cf_user))
CF_PASSWORD: ((cf_password))
CF_ORG: govuk-paas
CF_SPACE: tools
CF_APPS_DOMAIN: ((cf_apps_domain))
CF_SYSTEM_DOMAIN: ((cf_system_domain))
run:
path: sh
args:
- -e
- -u
- -c
- |
WORKDIR=$(pwd)
echo "Logging on to Cloudfoundry..."
cf login \
-a "${CF_API}" \
-u "${CF_USER}" \
-p "${CF_PASSWORD}" \
-o "${CF_ORG}" \
-s "${CF_SPACE}"
cd files-to-push
echo "Generating manifest template"
cat <<EOF | tee manifest-template.yml
---
applications:
- name: rubbernecker
memory: 128M
instances: 1
buildpack: go_buildpack
env:
GOPACKAGENAME: github.com/alphagov/paas-rubbernecker
PIVOTAL_TRACKER_PROJECT_ID: (( grab pivotal_tracker_project_id ))
PIVOTAL_TRACKER_API_TOKEN: (( grab pivotal_tracker_api_token ))
PAGERDUTY_AUTHTOKEN: (( grab pagerduty_authtoken ))
EOF
spruce merge \
manifest-template.yml \
"${WORKDIR}/rubbernecker-secrets/rubbernecker-secrets.yml" |
spruce merge --cherry-pick applications > manifest.yml
cf zero-downtime-push rubbernecker -f manifest.yml