Files
spring-tools/concourse/pipeline.yml
2017-04-04 12:24:03 -07:00

213 lines
5.9 KiB
YAML

##########################################################
resource_types:
- name: s3-multi
type: docker-image
source:
repository: kdvolder/s3-resource-simple
- name: slack-notification
type: docker-image
source:
repository: cfcommunity/slack-notification-resource
tag: latest
#########################################################
resources:
- name: docker-git
type: git
source:
uri: git@github.com:spring-projects/sts4.git
branch: {{branch}}
private_key: {{rsa_id}}
paths:
- concourse/docker
- name: sts4-out
type: git
source:
uri: git@github.com:spring-projects/sts4.git
branch: {{branch}}
private_key: {{rsa_id}}
- name: sts4
type: git
source:
uri: git@github.com:spring-projects/sts4.git
branch: {{branch}}
private_key: {{rsa_id}}
- name: s3-boot-properties-vsix-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/vscode-extensions/snapshots/vscode-boot-properties-(.*).vsix
- name: s3-boot-java-vsix-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/vscode-extensions/snapshots/vscode-boot-java-(.*).vsix
- name: s3-concourse-vsix-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/vscode-extensions/snapshots/vscode-concourse-(.*).vsix
- name: s3-manifest-yaml-vsix-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/vscode-extensions/snapshots/vscode-manifest-yaml-(.*).vsix
- name: snapshot-website
type: s3-multi
source:
bucket: {{s3_prod_bucket}}
access_key_id: {{s3_prod_accesskey}}
secret_access_key: {{s3_prod_secretkey}}
region_name: {{s3_region}}
path: snapshot/STS4/vscode-extensions
options:
- "--acl public-read"
- name: slack-notification
type: slack-notification
source:
url: https://hooks.slack.com/services/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
- name: docker-image
type: docker-image
source:
username: {{docker_hub_username}}
password: {{docker_hub_password}}
repository: kdvolder/sts4-build-env
- name: maven-cache
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: mvn-caches/sts4-(.*).tar.gz
########################################################################################
jobs:
- name: build-docker-image
serial: true
plan:
- get: docker-git
trigger: true
- put: docker-image
params:
build: docker-git/concourse/docker
get_params:
skip_download: true
- name: build-mvn-cache
serial: true
plan:
- get: sts4
trigger: true
- task: build-mvn-cache
file: sts4/concourse/tasks/build-mvn-cache.yml
- put: maven-cache
params:
file: out/*.tar.gz
- name: build-vsix-snapshots
plan:
- aggregate:
- get: sts4
trigger: true
- get: maven-cache
- task: build-vscode-extensions
file: sts4/concourse/tasks/build-vscode-extensions.yml
on_success:
aggregate:
- put: s3-manifest-yaml-vsix-snapshot
params:
file: vsix-files/vscode-manifest-yaml-*.vsix
acl: public-read
- put: s3-boot-properties-vsix-snapshot
params:
file: vsix-files/vscode-boot-properties-*.vsix
acl: public-read
- put: s3-boot-java-vsix-snapshot
params:
file: vsix-files/vscode-boot-java-*.vsix
acl: public-read
# on_failure:
# put: slack-notification
# params:
# channel: "@aboyko"
# text: |
# Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- name: build-consourse-vsix-snapshot
plan:
- aggregate:
- get: sts4
trigger: true
- get: maven-cache
- task: build-consourse-vsix-snapshot
file: sts4/concourse/tasks/build-vsix.yml
params:
extension_id: vscode-concourse
on_failure:
put: slack-notification
params:
channel: "@kdevolder"
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- put: s3-concourse-vsix-snapshot
params:
file: out/vscode-concourse-*.vsix
acl: public-read
- name: trigger-manifest-yaml-rc-build
plan:
- get: sts4
passed:
- build-snapshot-website
- get: s3-manifest-yaml-vsix-snapshot
passed:
- build-snapshot-website
- task: trigger-manifest-yaml-rc-build
file: sts4/concourse/tasks/create-rc-build-tag.yml
params:
extension_id: vscode-manifest-yaml
- put: sts4-out
params:
repository: sts4
tag: out/tag
only_tag: true
- name: build-snapshot-website
plan:
- aggregate:
- get: sts4
trigger: true
passed:
- build-vsix-snapshots
- get: s3-manifest-yaml-vsix-snapshot
passed:
- build-vsix-snapshots
- get: s3-boot-properties-vsix-snapshot
passed:
- build-vsix-snapshots
- get: s3-boot-java-vsix-snapshot
passed:
- build-vsix-snapshots
- get: s3-concourse-vsix-snapshot
trigger: true
passed:
- build-consourse-vsix-snapshot
- task: build-website
file: sts4/concourse/tasks/build-website.yml
- put: snapshot-website
params:
path: website
# on_success:
# put: slack-notification
# params:
# channel: "@aboyko"
# text: |
# SUCCESS Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME}!
# New snapshots available at http://dist.springsource.com/snapshot/STS4/nightly-distributions.html