Guest User

Untitled

a guest
Dec 17th, 2018
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.21 KB | None | 0 0
  1. groups: null
  2. jobs:
  3. - name: build-image
  4. plan:
  5. - get: build-version
  6. params:
  7. bump: patch
  8. - get: us.gcr.io/some-project/gcloud
  9. - get: source-code
  10. resource: tannerbruce/concourse-repro.git@develop
  11. trigger: true
  12. - do:
  13. - get_params:
  14. skip_download: "true"
  15. params:
  16. build: source-code
  17. build_args:
  18. SSH_PRIVATE_KEY: ((ssh-key))
  19. dockerfile: source-code/Dockerfile
  20. tag: build-version/number
  21. put: us.gcr.io/some-project/concourse-repro
  22. - params:
  23. file: build-version/number
  24. put: build-version
  25. - name: create-rc
  26. plan:
  27. - aggregate:
  28. - get: us.gcr.io/some-project/concourse-repro
  29. params:
  30. skip_download: "true"
  31. passed:
  32. - build-image
  33. - aggregate:
  34. - get: tannerbruce/concourse-repro.git@develop
  35. passed:
  36. - build-image
  37. trigger: true
  38. - get: version
  39. params:
  40. pre: rc
  41. - get: build-version
  42. passed:
  43. - build-image
  44. trigger: true
  45. - get: gcloud
  46. resource: us.gcr.io/some-project/gcloud
  47. - params:
  48. repository: tannerbruce/concourse-repro.git@develop
  49. put: tannerbruce/concourse-repro.git@rc
  50. - config:
  51. inputs:
  52. - name: source-version
  53. - name: dest-version
  54. platform: linux
  55. run:
  56. args:
  57. - -c
  58. - |2
  59.  
  60. set -e
  61. export IMAGE=us.gcr.io/some-project/concourse-repro
  62. OLD=$(cat source-version/number)
  63. NEW=$(cat dest-version/number)
  64. gcloud auth activate-service-account "((gcp-service-account))" --key-file <(echo '((gcp-service-account-key))')
  65. set -x
  66. gcloud config set project some-project
  67. gcloud container images add-tag ${IMAGE}:${OLD} ${IMAGE}:${NEW} -q
  68. path: bash
  69. image: gcloud
  70. input_mapping:
  71. dest-version: version
  72. source-version: build-version
  73. task: tag-image
  74. - params:
  75. file: version/number
  76. put: version
  77. - name: deploy-staging
  78. plan:
  79. - aggregate:
  80. - get: us.gcr.io/some-project/concourse-repro
  81. params:
  82. skip_download: "true"
  83. passed:
  84. - create-rc
  85. - aggregate:
  86. - get: git-repo
  87. passed:
  88. - create-rc
  89. resource: tannerbruce/concourse-repro.git@rc
  90. trigger: true
  91. - get: current-version
  92. passed:
  93. - create-rc
  94. resource: version
  95. trigger: true
  96. - get: us.gcr.io/some-project/gcloud
  97. - aggregate: []
  98. - config:
  99. inputs:
  100. - name: current-version
  101. platform: linux
  102. run:
  103. args:
  104. - -c
  105. - |2-
  106.  
  107. echo '((gcp-service-account-key))' > /keyfile.json
  108. gcloud auth activate-service-account "((gcp-service-account))" --key-file /keyfile.json
  109. rm /keyfile.json
  110. gcloud config set project some-gcp-project
  111. gcloud container clusters get-credentials apps --zone=northamerica-northeast1-a
  112.  
  113. VERSION=$(cat current-version/number)
  114.  
  115. kubectl set image -n concourse-repro-staging deployment/web web=us.gcr.io/some-project/concourse-repro:${VERSION}
  116. kubectl rollout status -n concourse-repro-staging deployment/web
  117. path: bash
  118. image: us.gcr.io/some-project/gcloud
  119. task: deploy-task
  120. - name: ship-it
  121. plan:
  122. - aggregate:
  123. - get: us.gcr.io/some-project/concourse-repro
  124. params:
  125. skip_download: "true"
  126. passed:
  127. - deploy-staging
  128. - aggregate:
  129. - get: current-version
  130. passed:
  131. - deploy-staging
  132. resource: version
  133. - get: version
  134. params:
  135. bump: final
  136. passed:
  137. - deploy-staging
  138. - get: git-rc
  139. passed:
  140. - deploy-staging
  141. resource: tannerbruce/concourse-repro.git@rc
  142. - get: gcloud
  143. resource: us.gcr.io/some-project/gcloud
  144. - params:
  145. repository: git-rc
  146. tag: version/number
  147. put: tannerbruce/concourse-repro.git@master
  148. - config:
  149. inputs:
  150. - name: source-version
  151. - name: dest-version
  152. platform: linux
  153. run:
  154. args:
  155. - -c
  156. - |2-
  157.  
  158. set -e
  159. export IMAGE=us.gcr.io/some-project/concourse-repro
  160. OLD=$(cat source-version/number)
  161. NEW=$(cat dest-version/number)
  162. gcloud auth activate-service-account "((gcp-service-account))" --key-file <(echo '((gcp-service-account-key))')
  163. set -x
  164. gcloud config set project some-project
  165. gcloud container images add-tag ${IMAGE}:${OLD} ${IMAGE}:${NEW} -q
  166.  
  167. gcloud container images add-tag ${IMAGE}:${OLD} ${IMAGE}:latest -q
  168. path: bash
  169. image: gcloud
  170. input_mapping:
  171. dest-version: version
  172. source-version: current-version
  173. task: tag-image
  174. - params:
  175. file: version/number
  176. put: version
  177. - name: deploy-prod
  178. plan:
  179. - aggregate:
  180. - get: us.gcr.io/some-project/concourse-repro
  181. params:
  182. skip_download: "true"
  183. passed:
  184. - ship-it
  185. - aggregate:
  186. - get: git-repo
  187. passed:
  188. - ship-it
  189. resource: tannerbruce/concourse-repro.git@master
  190. trigger: true
  191. - get: current-version
  192. passed:
  193. - ship-it
  194. resource: version
  195. trigger: true
  196. - get: us.gcr.io/some-project/gcloud
  197. - aggregate: []
  198. - config:
  199. inputs:
  200. - name: current-version
  201. platform: linux
  202. run:
  203. args:
  204. - -c
  205. - |2-
  206.  
  207. echo '((gcp-service-account-key))' > /keyfile.json
  208. gcloud auth activate-service-account "((gcp-service-account))" --key-file /keyfile.json
  209. rm /keyfile.json
  210. gcloud config set project some-gcp-project
  211. gcloud container clusters get-credentials apps --zone=northamerica-northeast1-a
  212.  
  213. VERSION=$(cat current-version/number)
  214.  
  215. kubectl set image -n concourse-repro-prod deployment/web web=us.gcr.io/some-project/concourse-repro:${VERSION}
  216. kubectl rollout status -n concourse-repro-prod deployment/web
  217. path: bash
  218. image: us.gcr.io/some-project/gcloud
  219. task: deploy-task
  220. - name: minor-version-bump
  221. plan:
  222. - aggregate:
  223. - get: us.gcr.io/some-project/concourse-repro
  224. params:
  225. skip_download: "true"
  226. passed:
  227. - ship-it
  228. - do:
  229. - get: version
  230. params:
  231. bump: minor
  232. pre: next
  233. passed:
  234. - ship-it
  235. resource: version
  236. trigger: true
  237. - params:
  238. file: version/number
  239. put: version
  240. resource: version
  241. resource_types:
  242. - name: docker
  243. params: null
  244. privileged: true
  245. source:
  246. repository: boldcommerce/docker-image-resource
  247. tag: latest
  248. tags: null
  249. type: docker-image
  250. - name: kubernetes
  251. params: null
  252. privileged: true
  253. source:
  254. repository: boldcommerce/kubernetes-resource
  255. tag: latest
  256. tags: null
  257. type: docker-image
  258. resources:
  259. - check_every: ""
  260. name: build-version
  261. source:
  262. bucket: some-gcp-bucket
  263. driver: gcs
  264. initial_version: 0.1.0
  265. json_key: ((gcp-service-account-key))
  266. key: concourse-repro-build
  267. tags: null
  268. type: semver
  269. webhook_token: ""
  270. - check_every: ""
  271. name: us.gcr.io/some-project/gcloud
  272. source:
  273. password: ((some-project-key))
  274. repository: us.gcr.io/some-project/gcloud
  275. tag: latest
  276. username: _json_key
  277. tags: null
  278. type: docker
  279. webhook_token: ""
  280. - check_every: ""
  281. name: version
  282. source:
  283. bucket: some-gcp-bucket
  284. driver: gcs
  285. initial_version: 0.1.0
  286. json_key: ((gcp-service-account-key))
  287. key: concourse-repro-current
  288. tags: null
  289. type: semver
  290. webhook_token: ""
  291. - check_every: 30s
  292. name: tannerbruce/concourse-repro.git@master
  293. source:
  294. branch: master
  295. private_key: ((ssh-key))
  296. uri: git@some-git-server.com:tannerbruce/concourse-repro.git
  297. tags: null
  298. type: git
  299. webhook_token: ""
  300. - check_every: 30s
  301. name: tannerbruce/concourse-repro.git@rc
  302. source:
  303. branch: rc
  304. private_key: ((ssh-key))
  305. uri: git@some-git-server.com:tannerbruce/concourse-repro.git
  306. tags: null
  307. type: git
  308. webhook_token: ""
  309. - check_every: 30s
  310. name: tannerbruce/concourse-repro.git@develop
  311. source:
  312. branch: develop
  313. private_key: ((ssh-key))
  314. uri: git@some-git-server.com:tannerbruce/concourse-repro.git
  315. tags: null
  316. type: git
  317. webhook_token: ""
  318. - check_every: ""
  319. name: us.gcr.io/some-project/concourse-repro
  320. source:
  321. password: ((some-project-key))
  322. repository: us.gcr.io/some-project/concourse-repro
  323. tag: latest
  324. username: _json_key
  325. tags: null
  326. type: docker
  327. webhook_token: ""
Add Comment
Please, Sign In to add comment