Skip to content

Commit c107e37

Browse files
committed
Add release process to CI
Closes gh-15
1 parent af5200b commit c107e37

File tree

4 files changed

+90
-1
lines changed

4 files changed

+90
-1
lines changed

ci/images/github-release-notes-generator-ci-image/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
FROM ubuntu:bionic-20181018
22

33
RUN apt-get update
4-
RUN apt-get install --no-install-recommends -y ca-certificates net-tools libxml2-utils git curl
4+
RUN apt-get install --no-install-recommends -y ca-certificates net-tools libxml2-utils git curl jq
55
RUN rm -rf /var/lib/apt/lists/*
66

77
ENV JAVA_HOME /opt/openjdk

ci/pipeline.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ resources:
2626
repository: springio/github-release-notes-generator
2727
username: ((docker-hub-username))
2828
password: ((docker-hub-password))
29+
- name: github-release
30+
type: github-release
31+
source:
32+
owner: spring-io
33+
repository: github-release-notes-generator
34+
access_token: ((github-release-notes-access-token))
2935
jobs:
3036
- name: build-github-release-notes-generator-ci-image
3137
plan:
@@ -48,10 +54,39 @@ jobs:
4854
build_args:
4955
root: git-repo
5056
jar: built-artifact/github-release-notes-generator.jar
57+
- name: release
58+
plan:
59+
- get: git-repo
60+
passed: [build]
61+
trigger: false
62+
- task: release
63+
file: git-repo/ci/tasks/release.yml
64+
params:
65+
GITHUB_USERNAME: ((github-username))
66+
GITHUB_TOKEN: ((github-release-notes-access-token))
67+
- put: git-repo
68+
params:
69+
repository: release-git-repo
70+
- put: github-release-notes-generator-image
71+
params:
72+
build: .
73+
dockerfile: git-repo/Dockerfile
74+
tag: built-artifact/version
75+
build_args:
76+
root: git-repo
77+
jar: built-artifact/github-release-notes-generator.jar
78+
- put: github-release
79+
params:
80+
name: built-artifact/version
81+
tag: built-artifact/version
82+
body: built-artifact/release-notes.md
83+
globs:
84+
- built-artifact/github-release-notes-generator.jar
5185
groups:
5286
- name: "Code"
5387
jobs:
5488
- build
89+
- release
5590
- name: "CI Images"
5691
jobs:
5792
- build-github-release-notes-generator-ci-image

ci/scripts/release.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/bash
2+
set -e
3+
4+
source $(dirname $0)/common.sh
5+
6+
git clone git-repo release-git-repo
7+
8+
pushd release-git-repo > /dev/null
9+
10+
snapshotVersion=$( get_revision_from_pom )
11+
releaseVersion=$( strip_snapshot_suffix "$snapshotVersion" )
12+
nextVersion=$( bump_version_number "$snapshotVersion" )
13+
14+
echo "Releasing $releaseVersion (next version will be $nextVersion)"
15+
set_revision_to_pom "$releaseVersion"
16+
git config user.name "Spring Buildmaster" > /dev/null
17+
git config user.email "[email protected]" > /dev/null
18+
git add pom.xml > /dev/null
19+
git commit -m"Release v$releaseVersion" > /dev/null
20+
git tag -a "v$releaseVersion" -m"Release v$releaseVersion" > /dev/null
21+
build
22+
23+
echo "Setting next development version (v$nextVersion)"
24+
git reset --hard HEAD^ > /dev/null
25+
set_revision_to_pom "$nextVersion"
26+
git add pom.xml > /dev/null
27+
git commit -m"Next development version (v$nextVersion)" > /dev/null
28+
29+
popd > /dev/null
30+
31+
milestone_number=$( curl -s "https://api.github.com/repos/spring-io/github-release-notes-generator/milestones" -u ${GITHUB_USERNAME}:${GITHUB_TOKEN} | jq -r --arg MILESTONE "${releaseVersion}" '.[] | select(.title == $MILESTONE) | .number' )
32+
33+
echo $releaseVersion > built-artifact/version
34+
cp release-git-repo/target/github-release-notes-generator.jar built-artifact/
35+
java -jar release-git-repo/target/github-release-notes-generator.jar --releasenotes.github.organization=spring-io --releasenotes.github.repository=github-release-notes-generator $milestone_number built-artifact/release-notes.md

ci/tasks/release.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
platform: linux
3+
image_resource:
4+
type: docker-image
5+
source:
6+
repository: springci/github-release-notes-generator-ci-image
7+
tag: master
8+
inputs:
9+
- name: git-repo
10+
outputs:
11+
- name: release-git-repo
12+
- name: built-artifact
13+
params:
14+
GITHUB_USERNAME:
15+
GITHUB_TOKEN:
16+
caches:
17+
- path: maven
18+
run:
19+
path: git-repo/ci/scripts/release.sh

0 commit comments

Comments
 (0)