diff --git a/ci/pipeline.yml b/ci/pipeline.yml index fb73f9025e..c96bbeedf5 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -1,3 +1,53 @@ +anchors: + git-repo-resource-source: &git-repo-resource-source + uri: ((github-repo)) + username: ((github-username)) + password: ((github-password)) + branch: ((branch)) + docker-resource-source: &docker-resource-source + username: ((docker-hub-username)) + password: ((docker-hub-password)) + tag: ((milestone)) + build-project-task-params: &build-project-task-params + privileged: true + timeout: ((task-timeout)) + file: git-repo/ci/tasks/build-project.yml + params: + BRANCH: ((branch)) + GRADLE_ENTERPRISE_ACCESS_KEY: ((gradle_enterprise_secret_access_key)) + GRADLE_ENTERPRISE_CACHE_USERNAME: ((gradle_enterprise_cache_user.username)) + GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password)) + github-task-params: &github-task-params + GITHUB_REPO: spring-boot + GITHUB_ORGANIZATION: spring-projects + GITHUB_PASSWORD: ((github-password)) + GITHUB_USERNAME: ((github-username)) + MILESTONE: ((milestone)) + bintray-task-params: &bintray-task-params + BINTRAY_SUBJECT: ((bintray-subject)) + BINTRAY_REPO: ((bintray-repo)) + BINTRAY_USERNAME: ((bintray-username)) + BINTRAY_API_KEY: ((bintray-api-key)) + sontatype-task-params: &sonatype-task-params + SONATYPE_USER_TOKEN: ((sonatype-user-token)) + SONATYPE_PASSWORD_TOKEN: ((sonatype-user-token-password)) + artifactory-task-params: &artifactory-task-params + ARTIFACTORY_SERVER: ((artifactory-server)) + ARTIFACTORY_USERNAME: ((artifactory-username)) + ARTIFACTORY_PASSWORD: ((artifactory-password)) + artifactory-repo-put-params: &artifactory-repo-put-params + repo: libs-snapshot-local + 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 + threads: 8 + artifact_set: + - include: + - "/**/spring-boot-docs-*.zip" + properties: + "zip.type": "docs" + "zip.deployed": "false" resource_types: - name: artifactory-resource type: docker-image @@ -23,17 +73,12 @@ resources: type: git icon: github-circle source: - uri: ((github-repo)) - username: ((github-username)) - password: ((github-password)) - branch: ((branch)) + <<: *git-repo-resource-source - name: git-repo-windows type: git - source: - uri: ((github-repo)) - username: ((github-username)) - password: ((github-password)) - branch: ((branch)) + icon: github-circle + source: + <<: *git-repo-resource-source git_config: - name: core.autocrlf value: true @@ -74,26 +119,20 @@ resources: type: docker-image icon: docker source: + <<: *docker-resource-source repository: ((docker-hub-organization))/spring-boot-ci-image - username: ((docker-hub-username)) - password: ((docker-hub-password)) - tag: 2.4.x - name: spring-boot-jdk11-ci-image type: docker-image icon: docker source: + <<: *docker-resource-source repository: ((docker-hub-organization))/spring-boot-jdk11-ci-image - username: ((docker-hub-username)) - password: ((docker-hub-password)) - tag: 2.4.x - name: spring-boot-jdk14-ci-image type: docker-image icon: docker source: + <<: *docker-resource-source repository: ((docker-hub-organization))/spring-boot-jdk14-ci-image - username: ((docker-hub-username)) - password: ((docker-hub-password)) - tag: 2.4.x - name: artifactory-repo type: artifactory-resource icon: package-variant @@ -170,22 +209,14 @@ jobs: - task: detect-jdk8-update file: git-repo/ci/tasks/detect-jdk-updates.yml params: - GITHUB_REPO: spring-boot - GITHUB_ORGANIZATION: spring-projects - GITHUB_PASSWORD: ((github-password)) - GITHUB_USERNAME: ((github-username)) + <<: *github-task-params JDK_VERSION: java8 - MILESTONE: ((milestone)) image: spring-boot-ci-image - task: detect-jdk11-update file: git-repo/ci/tasks/detect-jdk-updates.yml params: - GITHUB_REPO: spring-boot - GITHUB_ORGANIZATION: spring-projects - GITHUB_PASSWORD: ((github-password)) - GITHUB_USERNAME: ((github-username)) + <<: *github-task-params JDK_VERSION: java11 - MILESTONE: ((milestone)) image: spring-boot-ci-image - task: detect-jdk14-update file: git-repo/ci/tasks/detect-jdk-updates.yml @@ -207,11 +238,7 @@ jobs: - task: detect-ubuntu-image-updates file: git-repo/ci/tasks/detect-ubuntu-image-updates.yml params: - GITHUB_REPO: spring-boot - GITHUB_ORGANIZATION: spring-projects - GITHUB_PASSWORD: ((github-password)) - GITHUB_USERNAME: ((github-username)) - MILESTONE: ((milestone)) + <<: *github-task-params image: spring-boot-ci-image - name: detect-docker-updates plan: @@ -223,11 +250,7 @@ jobs: - task: detect-docker-updates file: git-repo/ci/tasks/detect-docker-updates.yml params: - GITHUB_REPO: spring-boot - GITHUB_ORGANIZATION: spring-projects - GITHUB_PASSWORD: ((github-password)) - GITHUB_USERNAME: ((github-username)) - MILESTONE: ((milestone)) + <<: *github-task-params image: spring-boot-ci-image - name: build serial: true @@ -240,15 +263,8 @@ jobs: params: { state: "pending", commit: "git-repo" } - do: - task: build-project - privileged: true - timeout: ((task-timeout)) + <<: *build-project-task-params image: spring-boot-ci-image - file: git-repo/ci/tasks/build-project.yml - params: - BRANCH: ((branch)) - GRADLE_ENTERPRISE_ACCESS_KEY: ((gradle_enterprise_secret_access_key)) - GRADLE_ENTERPRISE_CACHE_USERNAME: ((gradle_enterprise_cache_user.username)) - GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password)) on_failure: do: - put: repo-status-build @@ -266,19 +282,8 @@ jobs: - put: repo-status-build params: { state: "success", commit: "git-repo" } - put: artifactory-repo - params: &artifactory-params - repo: libs-snapshot-local - 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 - threads: 8 - artifact_set: - - include: - - "/**/spring-boot-docs-*.zip" - properties: - "zip.type": "docs" - "zip.deployed": "false" + params: + <<: *artifactory-repo-put-params get_params: threads: 8 on_failure: @@ -340,15 +345,8 @@ jobs: params: { state: "pending", commit: "git-repo" } - do: - task: build-project - privileged: true - timeout: ((task-timeout)) + <<: *build-project-task-params image: spring-boot-jdk11-ci-image - file: git-repo/ci/tasks/build-project.yml - params: - BRANCH: ((branch)) - GRADLE_ENTERPRISE_ACCESS_KEY: ((gradle_enterprise_secret_access_key)) - GRADLE_ENTERPRISE_CACHE_USERNAME: ((gradle_enterprise_cache_user.username)) - GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password)) on_failure: do: - put: repo-status-jdk11-build @@ -478,7 +476,7 @@ jobs: GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password)) - put: artifactory-repo params: - <<: *artifactory-params + <<: *artifactory-repo-put-params repo: libs-staging-local - put: git-repo params: @@ -499,7 +497,7 @@ jobs: GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password)) - put: artifactory-repo params: - <<: *artifactory-params + <<: *artifactory-repo-put-params repo: libs-staging-local - put: git-repo params: @@ -520,7 +518,7 @@ jobs: GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password)) - put: artifactory-repo params: - <<: *artifactory-params + <<: *artifactory-repo-put-params repo: libs-staging-local - put: git-repo params: @@ -542,9 +540,7 @@ jobs: file: git-repo/ci/tasks/promote.yml params: RELEASE_TYPE: M - ARTIFACTORY_SERVER: ((artifactory-server)) - ARTIFACTORY_USERNAME: ((artifactory-username)) - ARTIFACTORY_PASSWORD: ((artifactory-password)) + <<: *artifactory-task-params - task: generate-release-notes file: git-repo/ci/tasks/generate-release-notes.yml params: @@ -573,9 +569,7 @@ jobs: file: git-repo/ci/tasks/promote.yml params: RELEASE_TYPE: RC - ARTIFACTORY_SERVER: ((artifactory-server)) - ARTIFACTORY_USERNAME: ((artifactory-username)) - ARTIFACTORY_PASSWORD: ((artifactory-password)) + <<: *artifactory-task-params - task: generate-release-notes file: git-repo/ci/tasks/generate-release-notes.yml params: @@ -604,13 +598,8 @@ jobs: 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)) - BINTRAY_USERNAME: ((bintray-username)) - BINTRAY_API_KEY: ((bintray-api-key)) + <<: *artifactory-task-params + <<: *bintray-task-params - name: sync-to-maven-central serial: true plan: @@ -626,12 +615,8 @@ jobs: image: spring-boot-ci-image file: git-repo/ci/tasks/sync-to-maven-central.yml params: - BINTRAY_USERNAME: ((bintray-username)) - BINTRAY_API_KEY: ((bintray-api-key)) - SONATYPE_USER_TOKEN: ((sonatype-user-token)) - SONATYPE_PASSWORD_TOKEN: ((sonatype-user-token-password)) - BINTRAY_SUBJECT: ((bintray-subject)) - BINTRAY_REPO: ((bintray-repo)) + <<: *bintray-task-params + <<: *sonatype-task-params - task: generate-release-notes file: git-repo/ci/tasks/generate-release-notes.yml params: