Files
spring-tools/concourse/pipeline.yml
2017-09-18 20:43:47 -04:00

824 lines
23 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
type: git
source:
uri: git@github.com:spring-projects/sts4.git
branch: {{branch}}
private_key: {{rsa_id}}
- name: sts4-out
type: git
source:
uri: git@github.com:spring-projects/sts4.git
branch: {{branch}}
private_key: {{rsa_id}}
- name: atom-cf-manifest-yaml
type: git
source:
branch: {{branch}}
private_key: {{rsa_id}}
uri: git@github.com:spring-projects/atom-cf-manifest-yaml.git
- name: atom-cf-manifest-yaml-out
type: git
source:
branch: {{branch}}
private_key: {{rsa_id}}
uri: git@github.com:spring-projects/atom-cf-manifest-yaml.git
- name: atom-concourse
type: git
source:
branch: {{branch}}
private_key: {{rsa_id}}
uri: git@github.com:spring-projects/atom-concourse.git
- name: atom-concourse-out
type: git
source:
branch: {{branch}}
private_key: {{rsa_id}}
uri: git@github.com:spring-projects/atom-concourse.git
- name: atom-bosh
type: git
source:
branch: {{branch}}
private_key: {{rsa_id}}
uri: git@github.com:spring-projects/atom-bosh.git
- name: atom-bosh-out
type: git
source:
branch: {{branch}}
private_key: {{rsa_id}}
uri: git@github.com:spring-projects/atom-bosh.git
- name: tasks
type: git
source:
uri: git@github.com:spring-projects/sts4.git
branch: {{branch}}
paths:
- concourse/tasks
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-bosh-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-bosh-(.*).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: s3-manifest-yaml-fatjar-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/fatjars/snapshots/manifest-yaml-language-server-(.*).jar
- name: s3-manifest-yaml-fatjar-rc
type: s3
source:
bucket: {{s3_prod_bucket}}
access_key_id: {{s3_prod_accesskey}}
secret_access_key: {{s3_prod_secretkey}}
region_name: {{s3_prod_region}}
regexp: release/STS4/fatjars/manifest-yaml-language-server-(.*).jar
- name: s3-concourse-fatjar-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/fatjars/snapshots/concourse-language-server-(.*).jar
- name: s3-concourse-fatjar-rc
type: s3
source:
bucket: {{s3_prod_bucket}}
access_key_id: {{s3_prod_accesskey}}
secret_access_key: {{s3_prod_secretkey}}
region_name: {{s3_prod_region}}
regexp: release/STS4/fatjars/concourse-language-server-(.*).jar
- name: s3-bosh-fatjar-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/fatjars/snapshots/bosh-language-server-(.*).jar
- name: s3-bosh-fatjar-rc
type: s3
source:
bucket: {{s3_prod_bucket}}
access_key_id: {{s3_prod_accesskey}}
secret_access_key: {{s3_prod_secretkey}}
region_name: {{s3_prod_region}}
regexp: release/STS4/fatjars/bosh-language-server-(.*).jar
- name: s3-boot-java-fatjar-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/fatjars/snapshots/boot-java-language-server-(.*).jar
- name: s3-boot-java-fatjar-rc
type: s3
source:
bucket: {{s3_prod_bucket}}
access_key_id: {{s3_prod_accesskey}}
secret_access_key: {{s3_prod_secretkey}}
region_name: {{s3_prod_region}}
regexp: release/STS4/fatjars/boot-java-language-server-(.*).jar
- name: s3-manifest-yaml-atom-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/atom/snapshots/cf-manifest-yaml-(.*).tgz
- name: s3-concourse-atom-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/atom/snapshots/concourse-pipeline-yaml-(.*).tgz
- name: s3-bosh-atom-snapshot
type: s3
source:
bucket: {{s3_bucket}}
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
regexp: sts4/atom/snapshots/bosh-yaml-(.*).tgz
- name: vscode-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: atom-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/atom-packages
options:
- "--acl public-read"
- name: slack-notification
type: slack-notification
source:
url: {{slack_webhook}}
- 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
- name: version
type: semver
source:
driver: s3
bucket: {{s3_bucket}}
key: versions/vscode-extensions
access_key_id: {{s3_accesskey}}
secret_access_key: {{s3_secretkey}}
region_name: {{s3_region}}
initial_version: 0.0.5-RC.6
########################################################################################
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-boot-properties-vsix-snapshot
plan:
- aggregate:
- get: sts4
trigger: true
- get: maven-cache
- task: build-boot-properties-vsix-snapshot
attempts: 3 #Because its a bit flaky with the maven bits
file: sts4/concourse/tasks/build-vsix.yml
params:
extension_id: vscode-boot-properties
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- put: s3-boot-properties-vsix-snapshot
params:
file: out/vscode-boot-properties-*.vsix
acl: public-read
- name: build-boot-java-vsix-snapshot
plan:
- aggregate:
- get: sts4
trigger: true
- get: maven-cache
- task: build-boot-java-vsix-snapshot
attempts: 3 #Because its a bit flaky with the maven bits
file: sts4/concourse/tasks/build-vsix.yml
params:
extension_id: vscode-boot-java
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- put: s3-boot-java-vsix-snapshot
params:
file: out/vscode-boot-java-*.vsix
acl: public-read
- 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:
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: build-bosh-vsix-snapshot
plan:
- aggregate:
- get: sts4
trigger: true
- get: maven-cache
- task: build-bosh-vsix-snapshot
file: sts4/concourse/tasks/build-vsix.yml
params:
extension_id: vscode-bosh
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- put: s3-bosh-vsix-snapshot
params:
file: out/vscode-bosh-*.vsix
acl: public-read
- name: build-manifest-yaml-vsix-snapshot
plan:
- aggregate:
- get: sts4
trigger: true
- get: maven-cache
- task: build-manifest-yaml-vsix-snapshot
file: sts4/concourse/tasks/build-vsix.yml
params:
extension_id: vscode-manifest-yaml
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- aggregate:
- put: s3-manifest-yaml-vsix-snapshot
params:
file: out/vscode-manifest-yaml-*.vsix
acl: public-read
- name: trigger-rc-build
serial: true
plan:
- aggregate:
- get: sts4
passed:
- build-manifest-yaml-vsix-snapshot
- build-consourse-vsix-snapshot
- build-bosh-vsix-snapshot
- do:
- get: version
params:
pre: RC
- put: version
params:
file: version/version
- put: sts4-out
params:
repository: sts4
only_tag: true
tag_prefix: V_
tag: version/version
- name: promote-fatjars-to-rc
serial: true
plan:
- aggregate:
- get: s3-bosh-fatjar-snapshot
passed:
- build-bosh-atom-package
- get: s3-concourse-fatjar-snapshot
passed:
- build-concourse-atom-package
- get: s3-manifest-yaml-fatjar-snapshot
passed:
- build-manifest-yaml-atom-package
- aggregate:
- put: s3-bosh-fatjar-rc
params:
file: s3-bosh-fatjar-snapshot/*.jar
acl: public-read
- put: s3-concourse-fatjar-rc
params:
file: s3-concourse-fatjar-snapshot/*.jar
acl: public-read
- put: s3-manifest-yaml-fatjar-rc
params:
file: s3-manifest-yaml-fatjar-snapshot/*.jar
acl: public-read
- put: s3-boot-java-fatjar-rc
params:
file: s3-boot-java-fatjar-snapshot/*.jar
acl: public-read
- name: prepare-manifest-yaml-atom-rc
serial: true
plan:
- aggregate:
- get: sts4
- get: atom-cf-manifest-yaml
- get: s3-manifest-yaml-fatjar-rc
trigger: true
passed:
- promote-fatjars-to-rc
- task: build-atom-package
input_mapping:
package_sources: atom-cf-manifest-yaml
fatjar: s3-manifest-yaml-fatjar-rc
file: sts4/concourse/tasks/build-atom-package.yml
- put: atom-cf-manifest-yaml-out
params:
repository: out/repo
rebase: true
- name: prepare-concourse-atom-rc
serial: true
plan:
- aggregate:
- get: sts4
- get: atom-concourse
- get: s3-concourse-fatjar-rc
trigger: true
passed:
- promote-fatjars-to-rc
- task: build-atom-package
input_mapping:
package_sources: atom-concourse
fatjar: s3-concourse-fatjar-rc
file: sts4/concourse/tasks/build-atom-package.yml
- put: atom-concourse-out
params:
repository: out/repo
rebase: true
- name: prepare-bosh-atom-rc
serial: true
plan:
- aggregate:
- get: sts4
- get: atom-bosh
- get: s3-bosh-fatjar-rc
trigger: true
passed:
- promote-fatjars-to-rc
- task: build-atom-package
input_mapping:
package_sources: atom-bosh
fatjar: s3-bosh-fatjar-rc
file: sts4/concourse/tasks/build-atom-package.yml
- put: atom-bosh-out
params:
repository: out/repo
rebase: true
- name: build-concourse-rc
plan:
- aggregate:
- get: maven-cache
passed:
- build-consourse-vsix-snapshot
- get: sts4
passed:
- trigger-rc-build
- get: version
trigger: true
passed:
- trigger-rc-build
- task: build-concourse-rc
file: sts4/concourse/tasks/rc-build.yml
params:
extension_id: vscode-concourse
on_failure:
put: slack-notification
params:
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
on_success:
put: slack-notification
params:
text_file: s3-concourse-vsix-snapshot/url
icon_url: https://raw.githubusercontent.com/spring-projects/sts4/master/vscode-extensions/vscode-concourse/icon.png
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has succeed!
Release candidate available for testing $TEXT_FILE_CONTENT
- name: build-manifest-yaml-rc
plan:
- aggregate:
- get: maven-cache
passed:
- build-manifest-yaml-vsix-snapshot
- get: sts4
passed:
- trigger-rc-build
- get: version
trigger: true
passed:
- trigger-rc-build
- task: build-manifest-yaml-rc
file: sts4/concourse/tasks/rc-build.yml
params:
extension_id: vscode-manifest-yaml
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- put: s3-manifest-yaml-vsix-snapshot
params:
file: out/vscode-manifest-yaml-*.vsix
acl: public-read
on_success:
put: slack-notification
params:
text_file: s3-manifest-yaml-vsix-snapshot/url
icon_url: https://raw.githubusercontent.com/spring-projects/sts4/master/vscode-extensions/vscode-manifest-yaml/icon.png
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has succeed!
Release candidate available for testing $TEXT_FILE_CONTENT
- name: build-bosh-rc
plan:
- aggregate:
- get: maven-cache
passed:
- build-bosh-vsix-snapshot
- get: sts4
passed:
- trigger-rc-build
- get: version
trigger: true
passed:
- trigger-rc-build
- task: build-bosh-rc
file: sts4/concourse/tasks/rc-build.yml
params:
extension_id: vscode-bosh
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- put: s3-bosh-vsix-snapshot
params:
file: out/vscode-*.vsix
acl: public-read
on_success:
put: slack-notification
params:
text_file: s3-bosh-vsix-snapshot/url
icon_url: https://raw.githubusercontent.com/spring-projects/sts4/master/vscode-extensions/vscode-concourse/icon.png
text: |
Build ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has succeed!
Release candidate available for testing $TEXT_FILE_CONTENT
- name: publish-release
serial: true
plan:
- aggregate:
- get: tasks
- get: sts4
passed:
- build-manifest-yaml-rc
- build-concourse-rc
- build-bosh-rc
- get: s3-concourse-vsix-snapshot
passed:
- build-concourse-rc
- get: s3-manifest-yaml-vsix-snapshot
passed:
- build-manifest-yaml-rc
- get: s3-bosh-vsix-snapshot
passed:
- build-bosh-rc
- get: version
passed:
- build-concourse-rc
- build-manifest-yaml-rc
- build-bosh-rc
params:
bump: final
- task: publish-vsix-releases
file: tasks/concourse/tasks/publish-vsix-releases.yml
input_mapping:
sts4: tasks
params:
vsce_token: {{vsce_token}}
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
on_success:
put: slack-notification
params:
channel: "#tooling-projects"
text_file: version/version
text: |
STS 4 VScode Extensions $TEXT_FILE_CONTENT released
Releases now available on Vscode Marketplace:
• <https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-manifest-yaml|Cloudfoundry Manifest YML Support>
• <https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-concourse|Concourse CI Pipeline Editor>
• <https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-bosh|Bosh Deployment Manifest Editor>
- aggregate:
- put: sts4-out
params:
repository: sts4
only_tag: true
tag: version/version
tag_prefix: V_
- put: version
params:
file: version/version
- name: post-release
serial: true
plan:
- aggregate:
- get: sts4
- get: version
params:
bump: patch
trigger: true
passed:
- publish-release
- task: bump-versions
file: sts4/concourse/tasks/bump-versions.yml
- put: sts4-out
params:
repository: out
rebase: true
- put: version
params:
file: version/version
- name: build-atom-snapshot-website
serial: true
plan:
- aggregate:
- get: sts4
- get: s3-bosh-atom-snapshot
trigger: true
passed:
- build-bosh-atom-package
- get: s3-manifest-yaml-atom-snapshot
trigger: true
passed:
- build-manifest-yaml-atom-package
- get: s3-concourse-atom-snapshot
trigger: true
passed:
- build-concourse-atom-package
- task: build-website
file: sts4/concourse/tasks/build-atom-website.yml
- put: atom-snapshot-website
params:
path: website
- name: build-vscode-snapshot-website
serial: true
plan:
- aggregate:
- get: sts4
- get: s3-bosh-vsix-snapshot
trigger: true
passed:
- build-bosh-vsix-snapshot
- get: s3-manifest-yaml-vsix-snapshot
trigger: true
passed:
- build-manifest-yaml-vsix-snapshot
- get: s3-boot-properties-vsix-snapshot
trigger: true
passed:
- build-boot-properties-vsix-snapshot
- get: s3-boot-java-vsix-snapshot
trigger: true
passed:
- build-boot-java-vsix-snapshot
- get: s3-concourse-vsix-snapshot
trigger: true
passed:
- build-consourse-vsix-snapshot
- task: build-website
file: sts4/concourse/tasks/build-vscode-website.yml
- put: vscode-snapshot-website
params:
path: website
- name: atom-language-servers-test
plan:
- aggregate:
- get: sts4
trigger: true
- get: maven-cache
- task: atom-language-servers-test
file: sts4/concourse/tasks/atom-language-servers-test.yml
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
on_success:
aggregate:
- put: s3-manifest-yaml-fatjar-snapshot
params:
file: out/manifest-yaml-language-server-*.jar
acl: public-read
- put: s3-concourse-fatjar-snapshot
params:
file: out/concourse-language-server-*.jar
acl: public-read
- put: s3-bosh-fatjar-snapshot
params:
file: out/bosh-language-server-*.jar
acl: public-read
- put: s3-boot-java-fatjar-snapshot
params:
file: out/boot-java-language-server-*.jar
acl: public-read
- name: build-manifest-yaml-atom-package
plan:
- aggregate:
- get: sts4
passed:
- atom-language-servers-test
- get: atom-cf-manifest-yaml
trigger: true
- get: s3-manifest-yaml-fatjar-snapshot
trigger: true
passed:
- atom-language-servers-test
- task: build-manifest-yaml-atom-package
input_mapping:
package_sources: atom-cf-manifest-yaml
fatjar: s3-manifest-yaml-fatjar-snapshot
file: sts4/concourse/tasks/build-atom-package.yml
- put: s3-manifest-yaml-atom-snapshot
params:
file: out/cf-manifest-yaml-*.tgz
acl: public-read
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- name: build-concourse-atom-package
plan:
- aggregate:
- get: sts4
passed:
- atom-language-servers-test
- get: atom-concourse
trigger: true
- get: s3-concourse-fatjar-snapshot
trigger: true
passed:
- atom-language-servers-test
- task: build-concourse-pipeline-yaml-atom-package
input_mapping:
package_sources: atom-concourse
fatjar: s3-concourse-fatjar-snapshot
file: sts4/concourse/tasks/build-atom-package.yml
- put: s3-concourse-atom-snapshot
params:
file: out/concourse-pipeline-yaml-*.tgz
acl: public-read
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!
- name: build-bosh-atom-package
plan:
- aggregate:
- get: sts4
passed:
- atom-language-servers-test
- get: atom-bosh
trigger: true
- get: s3-bosh-fatjar-snapshot
trigger: true
passed:
- atom-language-servers-test
- task: build-bosh-atom-package
input_mapping:
package_sources: atom-bosh
fatjar: s3-bosh-fatjar-snapshot
file: sts4/concourse/tasks/build-atom-package.yml
- put: s3-bosh-atom-snapshot
params:
file: out/bosh-yaml-*.tgz
acl: public-read
on_failure:
put: slack-notification
params:
text: |
Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed!