Skip to content

Commit d9ddec7

Browse files
authored
release: Add automation for release processes (#19)
1 parent bbccb5e commit d9ddec7

File tree

3 files changed

+105
-0
lines changed

3 files changed

+105
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{{ range .Versions }}
2+
{{ range .CommitGroups -}}
3+
### {{ .Title }}
4+
5+
{{ range .Commits -}}
6+
* {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
7+
{{ if .Body }}> {{ .Body }} {{ end }}
8+
{{ end }}
9+
{{ end -}}
10+
11+
{{- if .RevertCommits -}}
12+
### Reverts
13+
14+
{{ range .RevertCommits -}}
15+
* {{ .Revert.Header }}
16+
{{ end }}
17+
{{ end -}}
18+
19+
{{- if .NoteGroups -}}
20+
{{ range .NoteGroups -}}
21+
### {{ .Title }}
22+
23+
{{ range .Notes }}
24+
{{ .Body }}
25+
{{ end }}
26+
{{ end -}}
27+
{{ end -}}
28+
{{ end -}}

.github/git-chglog/config.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
style: github
2+
template: CHANGELOG.tpl.md
3+
info:
4+
title: CHANGELOG
5+
repository_url: https://github.com/sysdiglabs/terraform-google-cloudvision
6+
options:
7+
commits:
8+
# filters:
9+
# Type:
10+
# - feat
11+
# - fix
12+
# - perf
13+
# - refactor
14+
commit_groups:
15+
title_maps:
16+
feat: Features
17+
fix: Bug Fixes
18+
perf: Performance Improvements
19+
refactor: Code Refactoring
20+
ci: Continuous Integration
21+
docs: Documentation
22+
chore: Small Modifications
23+
build: Compilation & Dependencies
24+
header:
25+
pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$"
26+
pattern_maps:
27+
- Type
28+
- Scope
29+
- Subject
30+
notes:
31+
keywords:
32+
- BREAKING CHANGE

.github/workflows/release.yaml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- v*
7+
8+
jobs:
9+
release:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v2
14+
with:
15+
fetch-depth: 0
16+
17+
- name: Setup Go
18+
uses: actions/setup-go@v2
19+
with:
20+
go-version: '^1.15'
21+
22+
- name: Setup go-chglog
23+
working-directory: /tmp
24+
env:
25+
VERSION: "0.10.0"
26+
run: |
27+
wget https://github.com/git-chglog/git-chglog/releases/download/v${VERSION}/git-chglog_${VERSION}_linux_amd64.tar.gz
28+
gunzip git-chglog_${VERSION}_linux_amd64.tar.gz
29+
tar -xvf git-chglog_${VERSION}_linux_amd64.tar
30+
sudo mv git-chglog /usr/local/bin/
31+
32+
- name: Generate changelog
33+
run: git-chglog -c .github/git-chglog/config.yml -o RELEASE_CHANGELOG.md $(git describe --tags $(git rev-list --tags --max-count=1))
34+
35+
- name: Create Release
36+
id: create_release
37+
uses: actions/create-release@v1
38+
env:
39+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40+
with:
41+
tag_name: ${{ github.ref }}
42+
release_name: ${{ github.ref }}
43+
draft: true
44+
prerelease: false
45+
body_path: RELEASE_CHANGELOG.md

0 commit comments

Comments
 (0)