Skip to content

Commit 1af8e3a

Browse files
committed
Adapt CI to release milestones and release candidates
1 parent df62b22 commit 1af8e3a

File tree

4 files changed

+120
-3
lines changed

4 files changed

+120
-3
lines changed

Diff for: ci/pipeline.yml

+104-1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,15 @@ resources:
6868
repository: ((github-repo-name))
6969
base_branch: ((branch))
7070
ignore_paths: ["ci/*"]
71+
- name: github-pre-release
72+
type: github-release
73+
icon: briefcase-download-outline
74+
source:
75+
owner: spring-projects
76+
repository: spring-retry
77+
access_token: ((github-ci-release-token))
78+
pre_release: true
79+
release: false
7180
- name: github-release
7281
type: github-release
7382
icon: briefcase-download
@@ -173,6 +182,100 @@ jobs:
173182
params:
174183
path: git-repo
175184
status: failure
185+
- name: stage-milestone
186+
serial: true
187+
plan:
188+
- get: ci-image
189+
- get: git-repo
190+
trigger: false
191+
- task: stage
192+
image: ci-image
193+
file: git-repo/ci/tasks/stage.yml
194+
params:
195+
RELEASE_TYPE: M
196+
- put: artifactory-repo
197+
params:
198+
<<: *artifactory-repo-put-params
199+
repo: libs-staging-local
200+
- put: git-repo
201+
params:
202+
repository: stage-git-repo
203+
- name: promote-milestone
204+
serial: true
205+
plan:
206+
- get: ci-image
207+
- get: git-repo
208+
trigger: false
209+
- get: artifactory-repo
210+
trigger: false
211+
passed: [stage-milestone]
212+
params:
213+
download_artifacts: false
214+
save_build_info: true
215+
- task: promote
216+
image: ci-image
217+
file: git-repo/ci/tasks/promote.yml
218+
params:
219+
RELEASE_TYPE: M
220+
<<: *artifactory-task-params
221+
- task: generate-changelog
222+
file: git-repo/ci/tasks/generate-changelog.yml
223+
params:
224+
RELEASE_TYPE: M
225+
GITHUB_USERNAME: ((github-username))
226+
GITHUB_TOKEN: ((github-ci-release-token))
227+
- put: github-pre-release
228+
params:
229+
name: generated-changelog/tag
230+
tag: generated-changelog/tag
231+
body: generated-changelog/changelog.md
232+
- name: stage-rc
233+
serial: true
234+
plan:
235+
- get: ci-image
236+
- get: git-repo
237+
trigger: false
238+
- task: stage
239+
image: ci-image
240+
file: git-repo/ci/tasks/stage.yml
241+
params:
242+
RELEASE_TYPE: RC
243+
- put: artifactory-repo
244+
params:
245+
<<: *artifactory-repo-put-params
246+
repo: libs-staging-local
247+
- put: git-repo
248+
params:
249+
repository: stage-git-repo
250+
- name: promote-rc
251+
serial: true
252+
plan:
253+
- get: ci-image
254+
- get: git-repo
255+
trigger: false
256+
- get: artifactory-repo
257+
trigger: false
258+
passed: [stage-rc]
259+
params:
260+
download_artifacts: false
261+
save_build_info: true
262+
- task: promote
263+
image: ci-image
264+
file: git-repo/ci/tasks/promote.yml
265+
params:
266+
RELEASE_TYPE: RC
267+
<<: *artifactory-task-params
268+
- task: generate-changelog
269+
file: git-repo/ci/tasks/generate-changelog.yml
270+
params:
271+
RELEASE_TYPE: RC
272+
GITHUB_USERNAME: ((github-username))
273+
GITHUB_TOKEN: ((github-ci-release-token))
274+
- put: github-pre-release
275+
params:
276+
name: generated-changelog/tag
277+
tag: generated-changelog/tag
278+
body: generated-changelog/changelog.md
176279
- name: stage-release
177280
serial: true
178281
plan:
@@ -238,7 +341,7 @@ groups:
238341
- name: "build"
239342
jobs: ["build"]
240343
- name: "releases"
241-
jobs: ["stage-release", "promote-release", "create-github-release"]
344+
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "create-github-release"]
242345
- name: "ci-images"
243346
jobs: ["build-ci-image"]
244347
- name: "pull-requests"

Diff for: ci/scripts/stage.sh

+13-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,19 @@ git clone git-repo stage-git-repo > /dev/null
1313
pushd stage-git-repo > /dev/null
1414

1515
snapshotVersion=$( get_revision_from_pom )
16-
stageVersion=$( get_next_release $snapshotVersion)
17-
nextVersion=$( bump_version_number $snapshotVersion)
16+
if [[ $RELEASE_TYPE = "M" ]]; then
17+
stageVersion=$( get_next_milestone_release $snapshotVersion)
18+
nextVersion=$snapshotVersion
19+
elif [[ $RELEASE_TYPE = "RC" ]]; then
20+
stageVersion=$( get_next_rc_release $snapshotVersion)
21+
nextVersion=$snapshotVersion
22+
elif [[ $RELEASE_TYPE = "RELEASE" ]]; then
23+
stageVersion=$( get_next_release $snapshotVersion)
24+
nextVersion=$( bump_version_number $snapshotVersion)
25+
else
26+
echo "Unknown release type $RELEASE_TYPE" >&2; exit 1;
27+
fi
28+
1829
echo "Staging $stageVersion (next version will be $nextVersion)"
1930

2031
set_revision_to_pom "$stageVersion"

Diff for: ci/tasks/promote.yml

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ inputs:
66
outputs:
77
- name: version
88
params:
9+
RELEASE_TYPE:
910
ARTIFACTORY_SERVER:
1011
ARTIFACTORY_USERNAME:
1112
ARTIFACTORY_PASSWORD:

Diff for: ci/tasks/stage.yml

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ inputs:
55
outputs:
66
- name: stage-git-repo
77
- name: distribution-repository
8+
params:
9+
RELEASE_TYPE:
810
caches:
911
- path: maven
1012
run:

0 commit comments

Comments
 (0)