Polish CI pipeline

This commit is contained in:
Stephane Nicoll 2021-03-10 13:59:30 +01:00
parent ed71fe0460
commit f6d3d9d6e6
7 changed files with 69 additions and 75 deletions

View File

@ -1,9 +1,9 @@
spring:
main:
banner-mode: off
logging: logging:
level: level:
io.spring.concourse: DEBUG io.spring.concourse: DEBUG
spring:
main:
banner-mode: off
sonatype: sonatype:
exclude: exclude:
- 'build-info\.json' - 'build-info\.json'

View File

@ -6,6 +6,7 @@ github-repo-name: "spring-projects/spring-framework"
docker-hub-organization: "springci" docker-hub-organization: "springci"
artifactory-server: "https://repo.spring.io" artifactory-server: "https://repo.spring.io"
branch: "master" branch: "master"
milestone: "5.3.x"
build-name: "spring-framework" build-name: "spring-framework"
pipeline-name: "spring-framework" pipeline-name: "spring-framework"
concourse-url: "https://ci.spring.io" concourse-url: "https://ci.spring.io"

View File

@ -1,16 +1,32 @@
anchors: anchors:
artifactory-task-params: &artifactory-task-params git-repo-resource-source: &git-repo-resource-source
ARTIFACTORY_SERVER: ((artifactory-server)) uri: ((github-repo))
ARTIFACTORY_USERNAME: ((artifactory-username)) username: ((github-username))
ARTIFACTORY_PASSWORD: ((artifactory-password)) password: ((github-password))
docker-resource-source: &docker-resource-source branch: ((branch))
username: ((docker-hub-username))
password: ((docker-hub-password))
tag: 5.3.x
gradle-enterprise-task-params: &gradle-enterprise-task-params gradle-enterprise-task-params: &gradle-enterprise-task-params
GRADLE_ENTERPRISE_ACCESS_KEY: ((gradle_enterprise_secret_access_key)) GRADLE_ENTERPRISE_ACCESS_KEY: ((gradle_enterprise_secret_access_key))
GRADLE_ENTERPRISE_CACHE_USERNAME: ((gradle_enterprise_cache_user.username)) GRADLE_ENTERPRISE_CACHE_USERNAME: ((gradle_enterprise_cache_user.username))
GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password)) GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password))
sonatype-task-params: &sonatype-task-params
SONATYPE_USER_TOKEN: ((sonatype-user-token))
SONATYPE_PASSWORD_TOKEN: ((sonatype-user-token-password))
SONATYPE_URL: ((sonatype-url))
SONATYPE_STAGING_PROFILE_ID: ((sonatype-staging-profile-id))
artifactory-task-params: &artifactory-task-params
ARTIFACTORY_SERVER: ((artifactory-server))
ARTIFACTORY_USERNAME: ((artifactory-username))
ARTIFACTORY_PASSWORD: ((artifactory-password))
build-project-task-params: &build-project-task-params
privileged: true
timeout: ((task-timeout))
params:
BRANCH: ((branch))
<<: *gradle-enterprise-task-params
docker-resource-source: &docker-resource-source
username: ((docker-hub-username))
password: ((docker-hub-password))
tag: ((milestone))
slack-fail-params: &slack-fail-params slack-fail-params: &slack-fail-params
text: > 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!> :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!>
@ -19,11 +35,6 @@ anchors:
silent: true silent: true
icon_emoji: ":concourse:" icon_emoji: ":concourse:"
username: concourse-ci username: concourse-ci
sonatype-task-params: &sonatype-task-params
SONATYPE_USER_TOKEN: ((sonatype-user-token))
SONATYPE_PASSWORD_TOKEN: ((sonatype-user-token-password))
SONATYPE_URL: ((sonatype-url))
SONATYPE_STAGING_PROFILE_ID: ((sonatype-staging-profile-id))
changelog-task-params: &changelog-task-params changelog-task-params: &changelog-task-params
name: generated-changelog/tag name: generated-changelog/tag
tag: generated-changelog/tag tag: generated-changelog/tag
@ -48,16 +59,12 @@ resource_types:
source: source:
repository: cfcommunity/slack-notification-resource repository: cfcommunity/slack-notification-resource
tag: latest tag: latest
resources: resources:
- name: git-repo - name: git-repo
type: git type: git
icon: github icon: github
source: source:
uri: ((github-repo)) <<: *git-repo-resource-source
username: ((github-username))
password: ((github-password))
branch: ((branch))
- name: every-morning - name: every-morning
type: time type: time
icon: alarm icon: alarm
@ -72,24 +79,24 @@ resources:
uri: ((github-repo)) uri: ((github-repo))
branch: ((branch)) branch: ((branch))
paths: ["ci/images/*"] paths: ["ci/images/*"]
- name: spring-framework-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-framework-ci-image repository: ((docker-hub-organization))/spring-framework-ci
- name: spring-framework-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-framework-jdk11-ci-image repository: ((docker-hub-organization))/spring-framework-ci-jdk11
- name: spring-framework-jdk15-ci-image - name: ci-image-jdk15
type: docker-image type: docker-image
icon: docker icon: docker
source: source:
<<: *docker-resource-source <<: *docker-resource-source
repository: ((docker-hub-organization))/spring-framework-jdk15-ci-image repository: ((docker-hub-organization))/spring-framework-ci-jdk15
- name: artifactory-repo - name: artifactory-repo
type: artifactory-resource type: artifactory-resource
icon: package-variant icon: package-variant
@ -144,43 +151,38 @@ resources:
repository: spring-framework repository: spring-framework
access_token: ((github-ci-release-token)) access_token: ((github-ci-release-token))
pre_release: false pre_release: false
jobs: jobs:
- name: build-spring-framework-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-framework-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-framework-ci-image/Dockerfile dockerfile: ci-images-git-repo/ci/images/ci-image/Dockerfile
- put: spring-framework-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-framework-jdk11-ci-image/Dockerfile dockerfile: ci-images-git-repo/ci/images/ci-image-jdk11/Dockerfile
- put: spring-framework-jdk15-ci-image - put: ci-image-jdk15
params: params:
build: ci-images-git-repo/ci/images build: ci-images-git-repo/ci/images
dockerfile: ci-images-git-repo/ci/images/spring-framework-jdk15-ci-image/Dockerfile dockerfile: ci-images-git-repo/ci/images/ci-image-jdk15/Dockerfile
- name: build - name: build
serial: true serial: true
public: true public: true
plan: plan:
- get: spring-framework-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
privileged: true image: ci-image
timeout: ((task-timeout))
image: spring-framework-ci-image
file: git-repo/ci/tasks/build-project.yml file: git-repo/ci/tasks/build-project.yml
params: <<: *build-project-task-params
BRANCH: ((branch))
<<: *gradle-enterprise-task-params
on_failure: on_failure:
do: do:
- put: repo-status-build - put: repo-status-build
@ -225,7 +227,7 @@ jobs:
serial: true serial: true
public: true public: true
plan: plan:
- get: spring-framework-jdk11-ci-image - get: ci-image-jdk11
- get: git-repo - get: git-repo
- get: every-morning - get: every-morning
trigger: true trigger: true
@ -233,13 +235,9 @@ jobs:
params: { state: "pending", commit: "git-repo" } params: { state: "pending", commit: "git-repo" }
- do: - do:
- task: check-project - task: check-project
privileged: true image: ci-image-jdk11
timeout: ((task-timeout))
image: spring-framework-jdk11-ci-image
file: git-repo/ci/tasks/check-project.yml file: git-repo/ci/tasks/check-project.yml
params: <<: *build-project-task-params
BRANCH: ((branch))
<<: *gradle-enterprise-task-params
on_failure: on_failure:
do: do:
- put: repo-status-jdk11-build - put: repo-status-jdk11-build
@ -253,7 +251,7 @@ jobs:
serial: true serial: true
public: true public: true
plan: plan:
- get: spring-framework-jdk15-ci-image - get: ci-image-jdk15
- get: git-repo - get: git-repo
- get: every-morning - get: every-morning
trigger: true trigger: true
@ -261,13 +259,9 @@ jobs:
params: { state: "pending", commit: "git-repo" } params: { state: "pending", commit: "git-repo" }
- do: - do:
- task: check-project - task: check-project
privileged: true image: ci-image-jdk11
timeout: ((task-timeout))
image: spring-framework-jdk15-ci-image
file: git-repo/ci/tasks/check-project.yml file: git-repo/ci/tasks/check-project.yml
params: <<: *build-project-task-params
BRANCH: ((branch))
<<: *gradle-enterprise-task-params
on_failure: on_failure:
do: do:
- put: repo-status-jdk15-build - put: repo-status-jdk15-build
@ -280,11 +274,11 @@ jobs:
- name: stage-milestone - name: stage-milestone
serial: true serial: true
plan: plan:
- get: spring-framework-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- task: stage - task: stage
image: spring-framework-ci-image image: ci-image
file: git-repo/ci/tasks/stage-version.yml file: git-repo/ci/tasks/stage-version.yml
params: params:
RELEASE_TYPE: M RELEASE_TYPE: M
@ -299,7 +293,7 @@ jobs:
- name: promote-milestone - name: promote-milestone
serial: true serial: true
plan: plan:
- get: spring-framework-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- get: artifactory-repo - get: artifactory-repo
@ -309,7 +303,7 @@ jobs:
download_artifacts: false download_artifacts: false
save_build_info: true save_build_info: true
- task: promote - task: promote
image: spring-framework-ci-image image: ci-image
file: git-repo/ci/tasks/promote-version.yml file: git-repo/ci/tasks/promote-version.yml
params: params:
RELEASE_TYPE: M RELEASE_TYPE: M
@ -325,11 +319,11 @@ jobs:
- name: stage-rc - name: stage-rc
serial: true serial: true
plan: plan:
- get: spring-framework-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- task: stage - task: stage
image: spring-framework-ci-image image: ci-image
file: git-repo/ci/tasks/stage-version.yml file: git-repo/ci/tasks/stage-version.yml
params: params:
RELEASE_TYPE: RC RELEASE_TYPE: RC
@ -344,7 +338,7 @@ jobs:
- name: promote-rc - name: promote-rc
serial: true serial: true
plan: plan:
- get: spring-framework-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- get: artifactory-repo - get: artifactory-repo
@ -354,7 +348,7 @@ jobs:
download_artifacts: false download_artifacts: false
save_build_info: true save_build_info: true
- task: promote - task: promote
image: spring-framework-ci-image image: ci-image
file: git-repo/ci/tasks/promote-version.yml file: git-repo/ci/tasks/promote-version.yml
params: params:
RELEASE_TYPE: RC RELEASE_TYPE: RC
@ -370,11 +364,11 @@ jobs:
- name: stage-release - name: stage-release
serial: true serial: true
plan: plan:
- get: spring-framework-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- task: stage - task: stage
image: spring-framework-ci-image image: ci-image
file: git-repo/ci/tasks/stage-version.yml file: git-repo/ci/tasks/stage-version.yml
params: params:
RELEASE_TYPE: RELEASE RELEASE_TYPE: RELEASE
@ -389,7 +383,7 @@ jobs:
- name: promote-release - name: promote-release
serial: true serial: true
plan: plan:
- get: spring-framework-ci-image - get: ci-image
- get: git-repo - get: git-repo
trigger: false trigger: false
- get: artifactory-repo - get: artifactory-repo
@ -399,7 +393,7 @@ jobs:
download_artifacts: false download_artifacts: false
save_build_info: true save_build_info: true
- task: promote - task: promote
image: spring-framework-ci-image image: ci-image
file: git-repo/ci/tasks/promote-version.yml file: git-repo/ci/tasks/promote-version.yml
params: params:
RELEASE_TYPE: RELEASE RELEASE_TYPE: RELEASE
@ -408,7 +402,7 @@ jobs:
- name: create-github-release - name: create-github-release
serial: true serial: true
plan: plan:
- get: spring-framework-ci-image - get: ci-image
- get: git-repo - get: git-repo
- get: artifactory-repo - get: artifactory-repo
trigger: true trigger: true
@ -429,6 +423,6 @@ groups:
- name: "builds" - name: "builds"
jobs: ["build", "jdk11-build", "jdk15-build"] jobs: ["build", "jdk11-build", "jdk15-build"]
- name: "releases" - name: "releases"
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone","promote-rc", "promote-release", "create-github-release"] jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "create-github-release"]
- name: "ci-images" - name: "ci-images"
jobs: ["build-spring-framework-ci-images"] jobs: ["build-ci-images"]

View File

@ -4,7 +4,6 @@ set -e
CONFIG_DIR=git-repo/ci/config CONFIG_DIR=git-repo/ci/config
version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' ) version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' )
java -jar /github-changelog-generator.jar \ java -jar /github-changelog-generator.jar \
--spring.config.location=${CONFIG_DIR}/changelog-generator.yml \ --spring.config.location=${CONFIG_DIR}/changelog-generator.yml \
${version} generated-changelog/changelog.md ${version} generated-changelog/changelog.md