Skip to content

Commit 5d8066f

Browse files
committed
ci: change build pipeline to new style
1 parent 96203b8 commit 5d8066f

File tree

4 files changed

+60
-54
lines changed

4 files changed

+60
-54
lines changed

.github/workflows/main_test_release.yml

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -41,29 +41,25 @@ jobs:
4141
runs-on: ubuntu-latest
4242
steps:
4343
- name: Git Checkout
44-
uses: actions/checkout@v3.0.0
44+
uses: actions/checkout@v4.1.0
4545
with:
4646
fetch-depth: 0
47-
- name: Install pnpm
48-
uses: pnpm/[email protected]
49-
with:
50-
version: 6.0.2
51-
- name: install conventional-changelog-cli
52-
run: pnpm install -g conventional-changelog-cli
53-
- name: install conventional-github-release
54-
run: pnpm install -g conventional-github-releaser
55-
- name: Set up JDK 17
56-
uses: actions/[email protected]
57-
with:
58-
distribution: 'corretto'
59-
java-version: '17'
47+
token: ${{ secrets.GH_ADMIN_TOKEN }}
6048
- id: install-secret-key
6149
name: Install gpg secret key
6250
run: cat <(echo -e "${{ secrets.PGP_SECRET_KEY }}") | gpg --batch --import
51+
- name: Set up JDK
52+
uses: coursier/setup-action@v1
53+
with:
54+
jvm: graalvm-java17:22.3.3
55+
apps: sbt scala scalac
56+
- name: Set up Docker Buildx
57+
uses: docker/setup-buildx-action@v2
58+
- name: Set up QEMU
59+
uses: docker/setup-qemu-action@v2
6360
- name: Release
6461
env:
65-
CONVENTIONAL_GITHUB_RELEASER_TOKEN: ${{ secrets.GH_ADMIN_TOKEN }}
66-
GITHUB_USER: ${{ secrets.GH_USERNAME }}
62+
GITHUB_USER: ${{ github.actor }}
6763
GITHUB_TOKEN: ${{ secrets.GH_ADMIN_TOKEN }}
6864
SONATYPE_USER: ${{ secrets.SONATYPE_USER }}
6965
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Github Release and Changelog
2+
3+
on:
4+
push:
5+
tags:
6+
- v[0-9]+.[0-9]+.[0-9]+
7+
8+
jobs:
9+
update-change-infos:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v3
13+
14+
- name: Update CHANGELOG
15+
id: changelog
16+
uses: requarks/changelog-action@v1
17+
with:
18+
token: ${{ github.token }}
19+
tag: ${{ github.ref_name }}
20+
21+
- name: Create Release
22+
uses: ncipollo/[email protected]
23+
with:
24+
allowUpdates: true
25+
draft: false
26+
makeLatest: true
27+
name: ${{ github.ref_name }}
28+
body: ${{ steps.changelog.outputs.changes }}
29+
token: ${{ github.token }}
30+
31+
- name: Commit CHANGELOG.md
32+
uses: stefanzweifel/git-auto-commit-action@v4
33+
with:
34+
branch: main
35+
commit_message: 'docs: update CHANGELOG.md for ${{ github.ref_name }}'
36+
file_pattern: CHANGELOG.md

build_release.sbt

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,16 @@
1+
import com.vdurmont.semver4j.Semver
2+
import dev.quadstingray.sbt.json.JsonFile
13
import sbtrelease.ReleasePlugin.autoImport.ReleaseKeys.versions
2-
import sbtrelease.ReleasePlugin.autoImport.ReleaseTransformations._
4+
import sbtrelease.ReleasePlugin.autoImport.ReleaseTransformations.*
35
import sbtrelease.ReleasePlugin.runtimeVersion
4-
import dev.quadstingray.sbt.json.JsonFile
56

6-
import scala.sys.process._
7+
import scala.sys.process.*
78

89
val gitAddAllTask = ReleaseStep(action = st => {
910
"git add .".!
1011
st
1112
})
1213

13-
val generateChangeLog = ReleaseStep(action = st => {
14-
st.log.warn("start generating changelog")
15-
val response = "conventional-changelog -p conventionalcommits -i CHANGELOG.md -s -r 0 -n ./changelog/config.js".!!
16-
st.log.warn("Output of conventional-changelog" + response)
17-
st
18-
})
19-
20-
val addGithubRelease = ReleaseStep(action = st => {
21-
st.log.warn("start github release process")
22-
var response = ""
23-
try response = "conventional-github-releaser -p conventionalcommits -r 3 -n ./changelog/config.js".!!
24-
catch {
25-
case e: Exception =>
26-
st.log.warn("Catched Exception on generate release notes: " + e.getMessage)
27-
}
28-
st.log.warn("Output of conventional-github-releaser: " + response)
29-
st
30-
})
31-
3214
val setToMyNextVersion = ReleaseStep(action = st => {
3315
setMyVersion(st.get(versions).get._2, st)
3416
st
@@ -51,17 +33,12 @@ releaseNextCommitMessage := s"ci: update version after release"
5133
releaseCommitMessage := s"ci: prepare release of version ${runtimeVersion.value}"
5234

5335
commands += Command.command("ci-release")((state: State) => {
54-
val lowerCaseVersion = version.value.toLowerCase
55-
if (
56-
(lowerCaseVersion.contains("snapshot") ||
57-
lowerCaseVersion.contains("beta") ||
58-
lowerCaseVersion.contains("rc") ||
59-
lowerCaseVersion.contains("m"))
60-
) {
61-
state
36+
val semVersion = new Semver(version.value)
37+
if (semVersion.isStable) {
38+
Command.process("release with-defaults", state)
6239
}
6340
else {
64-
Command.process("release with-defaults", state)
41+
state
6542
}
6643
})
6744

@@ -71,20 +48,16 @@ releaseProcess := {
7148
inquireVersions,
7249
runClean,
7350
setToMyReleaseVersion,
74-
generateChangeLog,
75-
releaseStepCommand("scalafmt"),
76-
gitAddAllTask,
7751
commitReleaseVersion,
7852
tagRelease,
7953
releaseStepCommandAndRemaining("+publishSigned"),
80-
releaseStepCommand("ci-deploy-docs"),
8154
releaseStepCommand("sonatypeBundleRelease"),
55+
releaseStepCommand("ci-deploy-docs"),
8256
setToMyNextVersion,
57+
releaseStepCommand("scalafmt"),
8358
gitAddAllTask,
8459
commitNextVersion,
85-
pushChanges,
86-
publishArtifacts,
87-
addGithubRelease
60+
pushChanges
8861
)
8962
}
9063

project/plugins.sbt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ addDependencyTreePlugin
2626
// todo remove as soon as possible
2727
dependencyOverrides += "org.scala-lang.modules" %% "scala-xml" % "1.2.0"
2828

29+
libraryDependencies += ("com.vdurmont" % "semver4j" % "3.1.0")

0 commit comments

Comments
 (0)