Skip to content

Commit 8c98aba

Browse files
committed
ci: add semantic-release config
1 parent 2438dfd commit 8c98aba

2 files changed

Lines changed: 80 additions & 0 deletions

File tree

.releaserc.mjs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* @type {import('semantic-release').GlobalConfig}
3+
*/
4+
export default {
5+
branches: ["main"],
6+
tagFormat: "${version}",
7+
plugins: [
8+
[
9+
"@semantic-release/commit-analyzer",
10+
{
11+
"preset": "conventionalcommits",
12+
"releaseRules": [
13+
{ "type": "docs", "release": "patch" }
14+
]
15+
}
16+
],
17+
"@semantic-release/release-notes-generator",
18+
[
19+
"semantic-release-mirror-version",
20+
{
21+
"fileGlob": "*(package.yaml|fused-effects-logger.cabal)",
22+
"placeholderRegExp": /(?<=\.)[0-9]+\.[0-9]+\.[0-9]+/g
23+
}
24+
],
25+
[
26+
"@semantic-release/changelog",
27+
{
28+
changelogFile: "CHANGELOG.md",
29+
changelogTitle: "Changelog"
30+
}
31+
],
32+
[
33+
"@semantic-release/exec",
34+
{
35+
"generateNotesCmd": "./bin/run-dch ${lastRelease.version} ${nextRelease.version}"
36+
}
37+
],
38+
[
39+
"@semantic-release/git",
40+
{
41+
"assets": [
42+
"package.yaml",
43+
"fused-effects-logger.cabal",
44+
"CHANGELOG.md",
45+
"debian/changelog",
46+
],
47+
"message": "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}"
48+
}
49+
]
50+
]
51+
};

bin/run-dch

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env bash
2+
3+
current="$1"
4+
target="$2"
5+
6+
if ! { test -n "$current" && test -n "$target"; }; then
7+
echo >&2 "usage: $0 CURRENT TARGET"
8+
exit 1
9+
fi
10+
11+
export DEBFULLNAME="$GIT_COMMITTER_NAME"
12+
export DEBEMAIL="$GIT_COMMITTER_EMAIL"
13+
14+
if test -d debian; then
15+
while read -r line; do
16+
dch \
17+
--upstream \
18+
--newversion "$target" \
19+
"$line"
20+
done < <(git log "$current"..HEAD --pretty=format:%s$'\n')
21+
22+
dch \
23+
--empty \
24+
--upstream \
25+
--newversion "$target" \
26+
--urgency medium \
27+
--distribution stable \
28+
''
29+
fi

0 commit comments

Comments
 (0)