|
|
|
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
|
|
|
|
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
|
|
|
|
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))
|
|
|
|
- put: email-notification
|
|
|
|
params:
|
|
|
|
subject: email-details/subject
|
|
|
|
body: email-details/body
|
|
|
|
- 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))
|
|
|
|
- put: repo-status-build
|
|
|
|
params: { state: "success", commit: "git-repo" }
|
|
|
|
- put: email-notification
|
|
|
|
params:
|
|
|
|
subject: email-details/subject
|
|
|
|
body: email-details/body
|
|
|
|
- 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-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))
|
|
|
|
- put: email-notification
|
|
|
|
params:
|
|
|
|
subject: email-details/subject
|
|
|
|
body: email-details/body
|
|
|
|
- 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: jdk9-build
|
|
|
|
CONCOURSE_URL: ((concourse-url))
|
|
|
|
- put: repo-status-jdk9-build
|
|
|
|
params: { state: "success", commit: "git-repo" }
|
|
|
|
- put: email-notification
|
|
|
|
params:
|
|
|
|
subject: email-details/subject
|
|
|
|
body: email-details/body
|
|
|
|
- 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-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))
|
|
|
|
- put: email-notification
|
|
|
|
params:
|
|
|
|
subject: email-details/subject
|
|
|
|
body: email-details/body
|
|
|
|
- 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: jdk10-build
|
|
|
|
CONCOURSE_URL: ((concourse-url))
|
|
|
|
- put: repo-status-jdk10-build
|
|
|
|
params: { state: "success", commit: "git-repo" }
|
|
|
|
- put: email-notification
|
|
|
|
params:
|
|
|
|
subject: email-details/subject
|
|
|
|
body: email-details/body
|
|
|
|
- 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"]
|