Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- groups: null
- jobs:
- - name: build-image
- plan:
- - get: build-version
- params:
- bump: patch
- - get: us.gcr.io/some-project/gcloud
- - get: source-code
- resource: tannerbruce/concourse-repro.git@develop
- trigger: true
- - do:
- - get_params:
- skip_download: "true"
- params:
- build: source-code
- build_args:
- SSH_PRIVATE_KEY: ((ssh-key))
- dockerfile: source-code/Dockerfile
- tag: build-version/number
- put: us.gcr.io/some-project/concourse-repro
- - params:
- file: build-version/number
- put: build-version
- - name: create-rc
- plan:
- - aggregate:
- - get: us.gcr.io/some-project/concourse-repro
- params:
- skip_download: "true"
- passed:
- - build-image
- - aggregate:
- - get: tannerbruce/concourse-repro.git@develop
- passed:
- - build-image
- trigger: true
- - get: version
- params:
- pre: rc
- - get: build-version
- passed:
- - build-image
- trigger: true
- - get: gcloud
- resource: us.gcr.io/some-project/gcloud
- - params:
- repository: tannerbruce/concourse-repro.git@develop
- put: tannerbruce/concourse-repro.git@rc
- - config:
- inputs:
- - name: source-version
- - name: dest-version
- platform: linux
- run:
- args:
- - -c
- - |2
- set -e
- export IMAGE=us.gcr.io/some-project/concourse-repro
- OLD=$(cat source-version/number)
- NEW=$(cat dest-version/number)
- gcloud auth activate-service-account "((gcp-service-account))" --key-file <(echo '((gcp-service-account-key))')
- set -x
- gcloud config set project some-project
- gcloud container images add-tag ${IMAGE}:${OLD} ${IMAGE}:${NEW} -q
- path: bash
- image: gcloud
- input_mapping:
- dest-version: version
- source-version: build-version
- task: tag-image
- - params:
- file: version/number
- put: version
- - name: deploy-staging
- plan:
- - aggregate:
- - get: us.gcr.io/some-project/concourse-repro
- params:
- skip_download: "true"
- passed:
- - create-rc
- - aggregate:
- - get: git-repo
- passed:
- - create-rc
- resource: tannerbruce/concourse-repro.git@rc
- trigger: true
- - get: current-version
- passed:
- - create-rc
- resource: version
- trigger: true
- - get: us.gcr.io/some-project/gcloud
- - aggregate: []
- - config:
- inputs:
- - name: current-version
- platform: linux
- run:
- args:
- - -c
- - |2-
- echo '((gcp-service-account-key))' > /keyfile.json
- gcloud auth activate-service-account "((gcp-service-account))" --key-file /keyfile.json
- rm /keyfile.json
- gcloud config set project some-gcp-project
- gcloud container clusters get-credentials apps --zone=northamerica-northeast1-a
- VERSION=$(cat current-version/number)
- kubectl set image -n concourse-repro-staging deployment/web web=us.gcr.io/some-project/concourse-repro:${VERSION}
- kubectl rollout status -n concourse-repro-staging deployment/web
- path: bash
- image: us.gcr.io/some-project/gcloud
- task: deploy-task
- - name: ship-it
- plan:
- - aggregate:
- - get: us.gcr.io/some-project/concourse-repro
- params:
- skip_download: "true"
- passed:
- - deploy-staging
- - aggregate:
- - get: current-version
- passed:
- - deploy-staging
- resource: version
- - get: version
- params:
- bump: final
- passed:
- - deploy-staging
- - get: git-rc
- passed:
- - deploy-staging
- resource: tannerbruce/concourse-repro.git@rc
- - get: gcloud
- resource: us.gcr.io/some-project/gcloud
- - params:
- repository: git-rc
- tag: version/number
- put: tannerbruce/concourse-repro.git@master
- - config:
- inputs:
- - name: source-version
- - name: dest-version
- platform: linux
- run:
- args:
- - -c
- - |2-
- set -e
- export IMAGE=us.gcr.io/some-project/concourse-repro
- OLD=$(cat source-version/number)
- NEW=$(cat dest-version/number)
- gcloud auth activate-service-account "((gcp-service-account))" --key-file <(echo '((gcp-service-account-key))')
- set -x
- gcloud config set project some-project
- gcloud container images add-tag ${IMAGE}:${OLD} ${IMAGE}:${NEW} -q
- gcloud container images add-tag ${IMAGE}:${OLD} ${IMAGE}:latest -q
- path: bash
- image: gcloud
- input_mapping:
- dest-version: version
- source-version: current-version
- task: tag-image
- - params:
- file: version/number
- put: version
- - name: deploy-prod
- plan:
- - aggregate:
- - get: us.gcr.io/some-project/concourse-repro
- params:
- skip_download: "true"
- passed:
- - ship-it
- - aggregate:
- - get: git-repo
- passed:
- - ship-it
- resource: tannerbruce/concourse-repro.git@master
- trigger: true
- - get: current-version
- passed:
- - ship-it
- resource: version
- trigger: true
- - get: us.gcr.io/some-project/gcloud
- - aggregate: []
- - config:
- inputs:
- - name: current-version
- platform: linux
- run:
- args:
- - -c
- - |2-
- echo '((gcp-service-account-key))' > /keyfile.json
- gcloud auth activate-service-account "((gcp-service-account))" --key-file /keyfile.json
- rm /keyfile.json
- gcloud config set project some-gcp-project
- gcloud container clusters get-credentials apps --zone=northamerica-northeast1-a
- VERSION=$(cat current-version/number)
- kubectl set image -n concourse-repro-prod deployment/web web=us.gcr.io/some-project/concourse-repro:${VERSION}
- kubectl rollout status -n concourse-repro-prod deployment/web
- path: bash
- image: us.gcr.io/some-project/gcloud
- task: deploy-task
- - name: minor-version-bump
- plan:
- - aggregate:
- - get: us.gcr.io/some-project/concourse-repro
- params:
- skip_download: "true"
- passed:
- - ship-it
- - do:
- - get: version
- params:
- bump: minor
- pre: next
- passed:
- - ship-it
- resource: version
- trigger: true
- - params:
- file: version/number
- put: version
- resource: version
- resource_types:
- - name: docker
- params: null
- privileged: true
- source:
- repository: boldcommerce/docker-image-resource
- tag: latest
- tags: null
- type: docker-image
- - name: kubernetes
- params: null
- privileged: true
- source:
- repository: boldcommerce/kubernetes-resource
- tag: latest
- tags: null
- type: docker-image
- resources:
- - check_every: ""
- name: build-version
- source:
- bucket: some-gcp-bucket
- driver: gcs
- initial_version: 0.1.0
- json_key: ((gcp-service-account-key))
- key: concourse-repro-build
- tags: null
- type: semver
- webhook_token: ""
- - check_every: ""
- name: us.gcr.io/some-project/gcloud
- source:
- password: ((some-project-key))
- repository: us.gcr.io/some-project/gcloud
- tag: latest
- username: _json_key
- tags: null
- type: docker
- webhook_token: ""
- - check_every: ""
- name: version
- source:
- bucket: some-gcp-bucket
- driver: gcs
- initial_version: 0.1.0
- json_key: ((gcp-service-account-key))
- key: concourse-repro-current
- tags: null
- type: semver
- webhook_token: ""
- - check_every: 30s
- name: tannerbruce/concourse-repro.git@master
- source:
- branch: master
- private_key: ((ssh-key))
- uri: git@some-git-server.com:tannerbruce/concourse-repro.git
- tags: null
- type: git
- webhook_token: ""
- - check_every: 30s
- name: tannerbruce/concourse-repro.git@rc
- source:
- branch: rc
- private_key: ((ssh-key))
- uri: git@some-git-server.com:tannerbruce/concourse-repro.git
- tags: null
- type: git
- webhook_token: ""
- - check_every: 30s
- name: tannerbruce/concourse-repro.git@develop
- source:
- branch: develop
- private_key: ((ssh-key))
- uri: git@some-git-server.com:tannerbruce/concourse-repro.git
- tags: null
- type: git
- webhook_token: ""
- - check_every: ""
- name: us.gcr.io/some-project/concourse-repro
- source:
- password: ((some-project-key))
- repository: us.gcr.io/some-project/concourse-repro
- tag: latest
- username: _json_key
- tags: null
- type: docker
- webhook_token: ""
Add Comment
Please, Sign In to add comment