resource_types :
- name : artifactory-resource
type : docker-image
source :
repository : springio/artifactory-resource
tag : 0.0 .3
- name : email
type : docker-image
source :
repository : pcfseceng/email-resource
- name : pull-request
type : docker-image
source :
repository : jtarchie/pr
- name : github-status-resource
type : docker-image
source :
repository : dpb587/github-status-resource
tag : master
- name : slack-notification
type : docker-image
source :
repository : cfcommunity/slack-notification-resource
tag : latest
resources :
- name : git-repo
type : git
source :
uri : ((github-repo))
username : ((github-username))
password : ((github-password))
branch : ((branch))
ignore_paths : [ "ci/images/*" ]
- name : ci-images-git-repo
type : git
source :
uri : ((github-repo))
branch : ((branch))
paths : [ "ci/images/*" ]
- name : spring-boot-ci-image
type : docker-image
source :
repository : ((docker-hub-organization))/spring-boot-ci-image
username : ((docker-hub-username))
password : ((docker-hub-password))
tag : ((branch))
- name : spring-boot-jdk9-ci-image
type : docker-image
source :
repository : ((docker-hub-organization))/spring-boot-jdk9-ci-image
username : ((docker-hub-username))
password : ((docker-hub-password))
tag : ((branch))
- name : spring-boot-jdk10-ci-image
type : docker-image
source :
repository : ((docker-hub-organization))/spring-boot-jdk10-ci-image
username : ((docker-hub-username))
password : ((docker-hub-password))
tag : ((branch))
- name : artifactory-repo
type : artifactory-resource
source :
uri : ((artifactory-server))
username : ((artifactory-username))
password : ((artifactory-password))
build_name : ((build-name))
- name : email-notification
type : email
source :
smtp :
host : ((email-server))
port : "25"
anonymous : true
skip_ssl_validation : true
from : ((email-from))
to : ((email-to))
- name : repo-status-build
type : github-status-resource
source :
repository : ((github-repo-name))
access_token : ((github-access-token))
branch : ((branch))
context : build
- name : repo-status-jdk9-build
type : github-status-resource
source :
repository : ((github-repo-name))
access_token : ((github-access-token))
branch : ((branch))
context : jdk9-build
- name : repo-status-jdk10-build
type : github-status-resource
source :
repository : ((github-repo-name))
access_token : ((github-access-token))
branch : ((branch))
context : jdk10-build
- name : slack-alert
type : slack-notification
source :
url : ((slack-webhook-url))
jobs :
- name : build-spring-boot-ci-images
plan :
- get : ci-images-git-repo
trigger : true
- put : spring-boot-ci-image
params :
build : ci-images-git-repo/ci/images/spring-boot-ci-image
- put : spring-boot-jdk9-ci-image
params :
build : ci-images-git-repo/ci/images/spring-boot-jdk9-ci-image
- put : spring-boot-jdk10-ci-image
params :
build : ci-images-git-repo/ci/images/spring-boot-jdk10-ci-image
- name : build
serial : true
public : true
plan :
- get : spring-boot-ci-image
- get : git-repo
trigger : true
- put : repo-status-build
params : { state : "pending" , commit : "git-repo" }
- do :
- task : build-project
privileged : true
timeout : 1h30m
image : spring-boot-ci-image
file : git-repo/ci/tasks/build-project.yml
- aggregate :
- task : build-samples
timeout : 1h30m
image : spring-boot-ci-image
file : git-repo/ci/tasks/build-samples.yml
- task : build-integration-tests
timeout : 1h30m
image : spring-boot-ci-image
file : git-repo/ci/tasks/build-integration-tests.yml
- task : build-deployment-tests
timeout : 1h30m
image : spring-boot-ci-image
file : git-repo/ci/tasks/build-deployment-tests.yml
on_failure :
do :
- put : repo-status-build
params : { state : "failure" , commit : "git-repo" }
- task : determine-email-body
image : spring-boot-ci-image
file : git-repo/ci/tasks/determine-email-body.yml
params :
STATE : failure
BUILD_PIPELINE_NAME : ((pipeline-name))
BUILD_JOB_NAME : build
CONCOURSE_URL : ((concourse-url))
ACCESS_TOKEN : ((github-access-token))
- put : email-notification
params :
subject : email-details/subject
body : email-details/body
- put : slack-alert
params :
text : ":concourse-failed: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} failed!>"
silent : true
icon_emoji : ":concourse:"
username : concourse-ci
- do :
- task : determine-email-body
image : spring-boot-ci-image
file : git-repo/ci/tasks/determine-email-body.yml
params :
STATE : success
BUILD_PIPELINE_NAME : ((pipeline-name))
BUILD_JOB_NAME : build
CONCOURSE_URL : ((concourse-url))
ACCESS_TOKEN : ((github-access-token))
- put : repo-status-build
params : { state : "success" , commit : "git-repo" }
- put : email-notification
params :
subject : email-details/subject
body : email-details/body
- put : slack-alert
params :
text : ":concourse-succeeded: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} was successful!>"
silent : true
icon_emoji : ":concourse:"
username : concourse-ci
- put : artifactory-repo
params : &artifactory-params
repo : libs-snapshot-local
build_number : "${BUILD_ID}"
folder : distribution-repository
build_uri : "https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}"
build_number : "${BUILD_PIPELINE_NAME}-${BUILD_JOB_NAME}-${BUILD_NAME}"
disable_checksum_uploads : true
exclude :
- "**/*.effective-pom"
artifact_set :
- include :
- "/**/spring-boot-docs-*.zip"
properties :
"zip.type": "docs"
"zip.deployed": "false"
- name : jdk9-build
serial : true
public : true
plan :
- get : spring-boot-jdk9-ci-image
- get : git-repo
trigger : true
- put : repo-status-jdk9-build
params : { state : "pending" , commit : "git-repo" }
- do :
- task : build-project
privileged : true
timeout : 1h30m
image : spring-boot-jdk9-ci-image
file : git-repo/ci/tasks/build-project.yml
- aggregate :
- task : build-samples
timeout : 1h30m
image : spring-boot-jdk9-ci-image
file : git-repo/ci/tasks/build-samples.yml
- task : build-integration-tests
timeout : 1h30m
image : spring-boot-jdk9-ci-image
file : git-repo/ci/tasks/build-integration-tests.yml
- task : build-deployment-tests
timeout : 1h30m
image : spring-boot-jdk9-ci-image
file : git-repo/ci/tasks/build-deployment-tests.yml
on_failure :
do :
- put : repo-status-jdk9-build
params : { state : "failure" , commit : "git-repo" }
- task : determine-email-body
image : spring-boot-jdk9-ci-image
file : git-repo/ci/tasks/determine-email-body.yml
params :
STATE : failure
BUILD_PIPELINE_NAME : ((pipeline-name))
BUILD_JOB_NAME : jdk9-build
CONCOURSE_URL : ((concourse-url))
ACCESS_TOKEN : ((github-access-token))
- put : email-notification
params :
subject : email-details/subject
body : email-details/body
- put : slack-alert
params :
text : ":concourse-failed: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} failed!>"
silent : true
icon_emoji : ":concourse:"
username : concourse-ci
- do :
- task : determine-email-body
image : spring-boot-jdk9-ci-image
file : git-repo/ci/tasks/determine-email-body.yml
params :
STATE : success
BUILD_PIPELINE_NAME : ((pipeline-name))
BUILD_JOB_NAME : jdk9-build
CONCOURSE_URL : ((concourse-url))
ACCESS_TOKEN : ((github-access-token))
- put : repo-status-jdk9-build
params : { state : "success" , commit : "git-repo" }
- put : email-notification
params :
subject : email-details/subject
body : email-details/body
- put : slack-alert
params :
text : ":concourse-succeeded: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} was successful!>"
silent : true
icon_emoji : ":concourse:"
username : concourse-ci
- name : jdk10-build
serial : true
public : true
plan :
- get : spring-boot-jdk10-ci-image
- get : git-repo
trigger : true
- put : repo-status-jdk10-build
params : { state : "pending" , commit : "git-repo" }
- do :
- task : build-project
privileged : true
timeout : 1h30m
image : spring-boot-jdk10-ci-image
file : git-repo/ci/tasks/build-project.yml
- aggregate :
- task : build-samples
timeout : 1h30m
image : spring-boot-jdk10-ci-image
file : git-repo/ci/tasks/build-samples.yml
- task : build-integration-tests
timeout : 1h30m
image : spring-boot-jdk10-ci-image
file : git-repo/ci/tasks/build-integration-tests.yml
- task : build-deployment-tests
timeout : 1h30m
image : spring-boot-jdk10-ci-image
file : git-repo/ci/tasks/build-deployment-tests.yml
on_failure :
do :
- put : repo-status-jdk10-build
params : { state : "failure" , commit : "git-repo" }
- task : determine-email-body
image : spring-boot-jdk10-ci-image
file : git-repo/ci/tasks/determine-email-body.yml
params :
STATE : failure
BUILD_PIPELINE_NAME : ((pipeline-name))
BUILD_JOB_NAME : jdk10-build
CONCOURSE_URL : ((concourse-url))
ACCESS_TOKEN : ((github-access-token))
- put : email-notification
params :
subject : email-details/subject
body : email-details/body
- put : slack-alert
params :
text : ":concourse-failed: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} failed!>"
silent : true
icon_emoji : ":concourse:"
username : concourse-ci
- do :
- task : determine-email-body
image : spring-boot-jdk10-ci-image
file : git-repo/ci/tasks/determine-email-body.yml
params :
STATE : success
BUILD_PIPELINE_NAME : ((pipeline-name))
BUILD_JOB_NAME : jdk10-build
CONCOURSE_URL : ((concourse-url))
ACCESS_TOKEN : ((github-access-token))
- put : repo-status-jdk10-build
params : { state : "success" , commit : "git-repo" }
- put : email-notification
params :
subject : email-details/subject
body : email-details/body
- put : slack-alert
params :
text : ":concourse-succeeded: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} was successful!>"
silent : true
icon_emoji : ":concourse:"
username : concourse-ci
- name : stage-milestone
serial : true
plan :
- get : spring-boot-ci-image
- get : git-repo
trigger : false
- task : stage
image : spring-boot-ci-image
file : git-repo/ci/tasks/stage.yml
params :
RELEASE_TYPE : M
- put : artifactory-repo
params :
<< : *artifactory-params
repo : libs-staging-local
- put : git-repo
params :
repository : stage-git-repo
- name : stage-rc
serial : true
plan :
- get : spring-boot-ci-image
- get : git-repo
trigger : false
- task : stage
image : spring-boot-ci-image
file : git-repo/ci/tasks/stage.yml
params :
RELEASE_TYPE : RC
- put : artifactory-repo
params :
<< : *artifactory-params
repo : libs-staging-local
- put : git-repo
params :
repository : stage-git-repo
- name : stage-release
serial : true
plan :
- get : spring-boot-ci-image
- get : git-repo
trigger : false
- task : stage
image : spring-boot-ci-image
file : git-repo/ci/tasks/stage.yml
params :
RELEASE_TYPE : RELEASE
- put : artifactory-repo
params :
<< : *artifactory-params
repo : libs-staging-local
- put : git-repo
params :
repository : stage-git-repo
- name : promote-milestone
serial : true
plan :
- get : spring-boot-ci-image
- get : git-repo
trigger : false
- get : artifactory-repo
trigger : false
passed : [ stage-milestone]
params :
save_build_info : true
- task : promote
image : spring-boot-ci-image
file : git-repo/ci/tasks/promote.yml
params :
RELEASE_TYPE : M
ARTIFACTORY_SERVER : ((artifactory-server))
ARTIFACTORY_USERNAME : ((artifactory-username))
ARTIFACTORY_PASSWORD : ((artifactory-password))
- name : promote-rc
serial : true
plan :
- get : spring-boot-ci-image
- get : git-repo
trigger : false
- get : artifactory-repo
trigger : false
passed : [ stage-rc]
params :
save_build_info : true
- task : promote
image : spring-boot-ci-image
file : git-repo/ci/tasks/promote.yml
params :
RELEASE_TYPE : RC
ARTIFACTORY_SERVER : ((artifactory-server))
ARTIFACTORY_USERNAME : ((artifactory-username))
ARTIFACTORY_PASSWORD : ((artifactory-password))
- name : promote-release
serial : true
plan :
- get : spring-boot-ci-image
- get : git-repo
trigger : false
- get : artifactory-repo
trigger : false
passed : [ stage-release]
params :
save_build_info : true
- task : promote
image : spring-boot-ci-image
file : git-repo/ci/tasks/promote.yml
params :
RELEASE_TYPE : RELEASE
ARTIFACTORY_SERVER : ((artifactory-server))
ARTIFACTORY_USERNAME : ((artifactory-username))
ARTIFACTORY_PASSWORD : ((artifactory-password))
BINTRAY_SUBJECT : ((bintray-subject))
BINTRAY_REPO : ((bintray-repo))
- name : sync-to-maven-central
serial : true
plan :
- get : spring-boot-ci-image
- get : git-repo
trigger : true
- get : artifactory-repo
trigger : false
passed : [ promote-release]
- task : sync-to-maven-central
image : spring-boot-ci-image
file : git-repo/ci/tasks/sync-to-maven-central.yml
params :
BINTRAY_USERNAME : ((bintray-username))
BINTRAY_PASSWORD : ((bintray-password))
SONATYPE_USERNAME : ((sonatype-username))
SONATYPE_PASSWORD : ((sonatype-password))
BINTRAY_SUBJECT : ((bintray-subject))
BINTRAY_REPO : ((bintray-repo))
groups :
- name : "Build"
jobs : [ "build" , "jdk9-build" , "jdk10-build" ]
- name : "Release"
jobs : [ "stage-milestone" , "stage-rc" , "stage-release" , "promote-milestone" , "promote-rc" , "promote-release" , "sync-to-maven-central" ]
- name : "CI Images"
jobs : [ "build-spring-boot-ci-images" ]