Use per-branch CI images

Closes gh-23439
This commit is contained in:
Phillip Webb 2020-09-21 20:01:05 -07:00
parent 4ed7febc47
commit b0cc5fba4e
4 changed files with 51 additions and 50 deletions

View File

@ -9,6 +9,7 @@ branch: "2.1.x"
milestone: "2.1.x" milestone: "2.1.x"
build-name: "spring-boot" build-name: "spring-boot"
pipeline-name: "spring-boot-2.1.x" pipeline-name: "spring-boot-2.1.x"
ci-image-name: "spring-boot-ci-21x"
concourse-url: "https://ci.spring.io" concourse-url: "https://ci.spring.io"
bintray-subject: "spring" bintray-subject: "spring"
bintray-repo: "jars" bintray-repo: "jars"

View File

@ -127,18 +127,18 @@ resources:
uri: ((github-repo)) uri: ((github-repo))
branch: ((branch)) branch: ((branch))
paths: ["ci/images/*"] paths: ["ci/images/*"]
- name: spring-boot-ci-image - name: ci-image
type: docker-image type: docker-image
icon: docker icon: docker
source: source:
<<: *docker-resource-source <<: *docker-resource-source
repository: ((docker-hub-organization))/spring-boot-ci-image repository: ((docker-hub-organization))/((ci-image-name))
- name: spring-boot-jdk11-ci-image - name: ci-image-jdk11
type: docker-image type: docker-image
icon: docker icon: docker
source: source:
<<: *docker-resource-source <<: *docker-resource-source
repository: ((docker-hub-organization))/spring-boot-jdk11-ci-image repository: ((docker-hub-organization))/((ci-image-name))-jdk11
- name: artifactory-repo - name: artifactory-repo
type: artifactory-resource type: artifactory-resource
icon: package-variant icon: package-variant
@ -179,34 +179,34 @@ resources:
icon: clock-outline icon: clock-outline
source: { interval: "24h" } source: { interval: "24h" }
jobs: jobs:
- name: build-spring-boot-ci-images - name: build-ci-images
plan: plan:
- get: ci-images-git-repo - get: ci-images-git-repo
trigger: true trigger: true
- in_parallel: - in_parallel:
- put: spring-boot-ci-image - put: ci-image
params: params:
build: ci-images-git-repo/ci/images build: ci-images-git-repo/ci/images
dockerfile: ci-images-git-repo/ci/images/spring-boot-ci-image/Dockerfile dockerfile: ci-images-git-repo/ci/images/ci-image/Dockerfile
- put: spring-boot-jdk11-ci-image - put: ci-image-jdk11
params: params:
build: ci-images-git-repo/ci/images build: ci-images-git-repo/ci/images
dockerfile: ci-images-git-repo/ci/images/spring-boot-jdk11-ci-image/Dockerfile dockerfile: ci-images-git-repo/ci/images/ci-image-jdk11/Dockerfile
- name: detect-jdk-updates - name: detect-jdk-updates
plan: plan:
- get: git-repo - get: git-repo
- get: every-wednesday - get: every-wednesday
trigger: true trigger: true
- get: spring-boot-ci-image - get: ci-image
- in_parallel: - in_parallel:
- task: detect-jdk8-update - task: detect-jdk8-update
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/detect-jdk-updates.yml file: git-repo/ci/tasks/detect-jdk-updates.yml
params: params:
<<: *github-task-params <<: *github-task-params
JDK_VERSION: java8 JDK_VERSION: java8
- task: detect-jdk11-update - task: detect-jdk11-update
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/detect-jdk-updates.yml file: git-repo/ci/tasks/detect-jdk-updates.yml
params: params:
<<: *github-task-params <<: *github-task-params
@ -216,10 +216,10 @@ jobs:
- get: git-repo - get: git-repo
- get: every-wednesday - get: every-wednesday
trigger: true trigger: true
- get: spring-boot-ci-image - get: ci-image
- do: - do:
- task: detect-ubuntu-image-updates - task: detect-ubuntu-image-updates
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/detect-ubuntu-image-updates.yml file: git-repo/ci/tasks/detect-ubuntu-image-updates.yml
params: params:
<<: *github-task-params <<: *github-task-params
@ -228,10 +228,10 @@ jobs:
- get: git-repo - get: git-repo
- get: every-wednesday - get: every-wednesday
trigger: true trigger: true
- get: spring-boot-ci-image - get: ci-image
- do: - do:
- task: detect-docker-updates - task: detect-docker-updates
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/detect-docker-updates.yml file: git-repo/ci/tasks/detect-docker-updates.yml
params: params:
<<: *github-task-params <<: *github-task-params
@ -239,30 +239,30 @@ jobs:
serial: true serial: true
public: true public: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: true trigger: true
- put: repo-status-build - put: repo-status-build
params: { state: "pending", commit: "git-repo" } params: { state: "pending", commit: "git-repo" }
- do: - do:
- task: build-project - task: build-project
image: spring-boot-ci-image image: ci-image
<<: *build-project-task-params <<: *build-project-task-params
- in_parallel: - in_parallel:
- task: build-samples - task: build-samples
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/build-samples.yml file: git-repo/ci/tasks/build-samples.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
params: params:
<<: *gradle-enterprise-task-params <<: *gradle-enterprise-task-params
- task: build-integration-tests - task: build-integration-tests
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/build-integration-tests.yml file: git-repo/ci/tasks/build-integration-tests.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
params: params:
<<: *gradle-enterprise-task-params <<: *gradle-enterprise-task-params
- task: build-deployment-tests - task: build-deployment-tests
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/build-deployment-tests.yml file: git-repo/ci/tasks/build-deployment-tests.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
params: params:
@ -291,7 +291,7 @@ jobs:
serial: true serial: true
public: true public: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
resource: git-pull-request resource: git-pull-request
trigger: true trigger: true
@ -302,20 +302,20 @@ jobs:
path: git-repo path: git-repo
status: pending status: pending
- task: build-project - task: build-project
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/build-pr-project.yml file: git-repo/ci/tasks/build-pr-project.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
- in_parallel: - in_parallel:
- task: build-samples - task: build-samples
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/build-samples.yml file: git-repo/ci/tasks/build-samples.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
- task: build-integration-tests - task: build-integration-tests
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/build-integration-tests.yml file: git-repo/ci/tasks/build-integration-tests.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
- task: build-deployment-tests - task: build-deployment-tests
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/build-deployment-tests.yml file: git-repo/ci/tasks/build-deployment-tests.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
on_success: on_success:
@ -332,30 +332,30 @@ jobs:
serial: true serial: true
public: true public: true
plan: plan:
- get: spring-boot-jdk11-ci-image - get: ci-image-jdk11
- get: git-repo - get: git-repo
trigger: true trigger: true
- put: repo-status-jdk11-build - put: repo-status-jdk11-build
params: { state: "pending", commit: "git-repo" } params: { state: "pending", commit: "git-repo" }
- do: - do:
- task: build-project - task: build-project
image: spring-boot-jdk11-ci-image image: ci-image-jdk11
<<: *build-project-task-params <<: *build-project-task-params
- in_parallel: - in_parallel:
- task: build-samples - task: build-samples
image: spring-boot-jdk11-ci-image image: ci-image-jdk11
file: git-repo/ci/tasks/build-samples.yml file: git-repo/ci/tasks/build-samples.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
params: params:
<<: *gradle-enterprise-task-params <<: *gradle-enterprise-task-params
- task: build-integration-tests - task: build-integration-tests
image: spring-boot-jdk11-ci-image image: ci-image-jdk11
file: git-repo/ci/tasks/build-integration-tests.yml file: git-repo/ci/tasks/build-integration-tests.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
params: params:
<<: *gradle-enterprise-task-params <<: *gradle-enterprise-task-params
- task: build-deployment-tests - task: build-deployment-tests
image: spring-boot-jdk11-ci-image image: ci-image-jdk11
file: git-repo/ci/tasks/build-deployment-tests.yml file: git-repo/ci/tasks/build-deployment-tests.yml
timeout: ((task-timeout)) timeout: ((task-timeout))
params: params:
@ -399,11 +399,11 @@ jobs:
- name: stage-milestone - name: stage-milestone
serial: true serial: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- task: stage - task: stage
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/stage.yml file: git-repo/ci/tasks/stage.yml
params: params:
RELEASE_TYPE: M RELEASE_TYPE: M
@ -420,11 +420,11 @@ jobs:
- name: stage-rc - name: stage-rc
serial: true serial: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- task: stage - task: stage
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/stage.yml file: git-repo/ci/tasks/stage.yml
params: params:
RELEASE_TYPE: RC RELEASE_TYPE: RC
@ -441,11 +441,11 @@ jobs:
- name: stage-release - name: stage-release
serial: true serial: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- task: stage - task: stage
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/stage.yml file: git-repo/ci/tasks/stage.yml
params: params:
RELEASE_TYPE: RELEASE RELEASE_TYPE: RELEASE
@ -462,7 +462,7 @@ jobs:
- name: promote-milestone - name: promote-milestone
serial: true serial: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- get: artifactory-repo - get: artifactory-repo
@ -472,7 +472,7 @@ jobs:
download_artifacts: false download_artifacts: false
save_build_info: true save_build_info: true
- task: promote - task: promote
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/promote.yml file: git-repo/ci/tasks/promote.yml
params: params:
RELEASE_TYPE: M RELEASE_TYPE: M
@ -491,7 +491,7 @@ jobs:
- name: promote-rc - name: promote-rc
serial: true serial: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- get: artifactory-repo - get: artifactory-repo
@ -501,7 +501,7 @@ jobs:
download_artifacts: false download_artifacts: false
save_build_info: true save_build_info: true
- task: promote - task: promote
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/promote.yml file: git-repo/ci/tasks/promote.yml
params: params:
RELEASE_TYPE: RC RELEASE_TYPE: RC
@ -520,7 +520,7 @@ jobs:
- name: promote-release - name: promote-release
serial: true serial: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- get: artifactory-repo - get: artifactory-repo
@ -530,7 +530,7 @@ jobs:
download_artifacts: false download_artifacts: false
save_build_info: true save_build_info: true
- task: promote - task: promote
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/promote.yml file: git-repo/ci/tasks/promote.yml
params: params:
RELEASE_TYPE: RELEASE RELEASE_TYPE: RELEASE
@ -539,7 +539,7 @@ jobs:
- name: sync-to-maven-central - name: sync-to-maven-central
serial: true serial: true
plan: plan:
- get: spring-boot-ci-image - get: ci-image
- get: git-repo - get: git-repo
- get: artifactory-repo - get: artifactory-repo
trigger: true trigger: true
@ -548,7 +548,7 @@ jobs:
download_artifacts: false download_artifacts: false
save_build_info: true save_build_info: true
- task: sync-to-maven-central - task: sync-to-maven-central
image: spring-boot-ci-image image: ci-image
file: git-repo/ci/tasks/sync-to-maven-central.yml file: git-repo/ci/tasks/sync-to-maven-central.yml
params: params:
<<: *bintray-task-params <<: *bintray-task-params
@ -565,11 +565,11 @@ jobs:
tag: generated-release-notes/tag tag: generated-release-notes/tag
body: generated-release-notes/release-notes.md body: generated-release-notes/release-notes.md
groups: groups:
- name: "Build" - name: "builds"
jobs: ["build", "jdk11-build", "windows-build"] jobs: ["build", "jdk11-build", "windows-build"]
- name: "Release" - name: "releases"
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "sync-to-maven-central"] jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "sync-to-maven-central"]
- name: "CI Images" - name: "ci-images"
jobs: ["build-spring-boot-ci-images", "detect-docker-updates", "detect-jdk-updates", "detect-ubuntu-image-updates"] jobs: ["build-ci-images", "detect-docker-updates", "detect-jdk-updates", "detect-ubuntu-image-updates"]
- name: "Build Pull Requests" - name: "pull-requests"
jobs: ["build-pull-requests"] jobs: ["build-pull-requests"]