Skip to content

Commit 1cc04f6

Browse files
add prepare-github-release task
1 parent c7f09a6 commit 1cc04f6

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

ci/tasks/prepare-github-release

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/bin/bash
2+
3+
set -eu
4+
set -o pipefail
5+
6+
version=$(cat version/version)
7+
8+
echo v$version > release-output/release-name
9+
echo v$version > release-output/release-tag
10+
11+
git -C cf-cli-resource rev-parse HEAD > release-output/commitish
12+
13+
# Generate release notes from CHANGELOG.md
14+
capture=false
15+
content=
16+
while read line; do
17+
18+
# Matches variations of start line: ## [2.0.0] - some other text
19+
if ! $capture && echo $line | grep -oEq "^##\s\[{0,}$version]{0,}\s{0,}.*$"; then
20+
capture=true
21+
fi
22+
23+
# Matches variations of stop line: ## [1.0.0] - some other text
24+
if $capture && [ -n "$content" ] && echo $line | grep -oEq "^##\s\[{0,}.*]{0,}\s{0,}.*$"; then
25+
capture=false
26+
fi
27+
28+
# Matches markdown links at bottom of file: [1.0.0]: https://...
29+
if $capture && [ -n "$content" ] && echo $line | grep -oEq "^\[.*$"; then
30+
capture=false
31+
fi
32+
33+
[ $capture = true ] && content+="$line"$'\n'
34+
35+
done <cf-cli-resource/CHANGELOG.md
36+
37+
echo "$content" > release-output/RELEASE_NOTES.md
38+
39+
echo "Release Notes:"
40+
echo "-------------"
41+
cat release-output/RELEASE_NOTES.md
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
platform: linux
3+
4+
image_resource:
5+
type: registry-image
6+
source:
7+
repository: concourse/git-resource
8+
9+
inputs:
10+
- name: cf-cli-resource
11+
- name: version
12+
13+
outputs:
14+
- name: release-output
15+
16+
run:
17+
path: cf-cli-resource/ci/tasks/prepare-github-release

0 commit comments

Comments
 (0)