Skip to content

Commit 50e82f8

Browse files
committed
dynverAssertVersion: calc dynver from ThisBuild / dynverCurrentDate
relates: + 7e4328c Fix dynverAssertVersion sometimes failed + 3cd2dfc remove sdQaVersion task. Use dynverAssertVersion directly To prevent
1 parent e13d140 commit 50e82f8

File tree

7 files changed

+21
-16
lines changed

7 files changed

+21
-16
lines changed

devops/src/main/scala/com/sandinh/devops/DevopsPlugin.scala

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ object DevopsPlugin extends AutoPlugin {
5959
// <task>.value macro causing spurious “a pure expression does nothing” warning
6060
// This `val _ =` is not need if we set `pluginCrossBuild` to a newer sbt version
6161
val _ = sdQaBaseTask.value
62-
val __ = dynverAssertVersion.all(ScopeFilter(inAnyProject)).value
62+
val __ = qaVersionTask.all(ScopeFilter(inAnyProject)).value
6363
val fmtOk = scalafmtCheck.?.all(inAny).result.value.isSuccess
6464
val sbtOk = scalafmtSbtCheck.?.all(inAny).result.value.isSuccess
6565
orBoom(
@@ -100,12 +100,16 @@ object DevopsPlugin extends AutoPlugin {
100100
}
101101
}
102102

103-
override lazy val projectSettings: Seq[Setting[?]] = Seq(
104-
dynverAssertVersion := orBoom(
105-
version.value == (ThisBuild / dynver).value,
103+
override lazy val projectSettings: Seq[Setting[?]] = projectSettingsImpl
104+
105+
def qaVersionTask: Initialize[Task[Unit]] = Def.task {
106+
val dynver = (ThisBuild / dynverInstance).value
107+
val date = (ThisBuild / dynverCurrentDate).value
108+
orBoom(
109+
version.value == dynver.sonatypeVersion(date),
106110
s"Project ${name.value} define `version` manually!"
107-
),
108-
) ++ projectSettingsImpl
111+
)
112+
}
109113

110114
private val projectAndSkip = Def.task {
111115
projectID.value -> (publish / skip).value
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import com.sandinh.devops.DevopsPlugin.qaVersionTask
2+
TaskKey[Unit]("qaVersion") := qaVersionTask.value

devops/src/sbt-test/all/simple/test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
> dynverAssertVersion
1+
> qaVersion
22
-> devopsQA
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
version := "0.1.0"
2+
3+
import com.sandinh.devops.DevopsPlugin.qaVersionTask
4+
TaskKey[Unit]("qaVersion") := qaVersionTask.value

devops/src/sbt-test/all/version/test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
-> dynverAssertVersion
1+
-> qaVersion

devops/src/sbt-test/all/versionPerProj/build.sbt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import com.sandinh.devops.DevopsPlugin.qaVersionTask
2+
TaskKey[Unit]("qaVersion") := qaVersionTask.all(ScopeFilter(inAnyProject)).value
3+
14
lazy val prjA = project
25
lazy val prjB = project
36

devops/src/sbt-test/all/versionPerProj/test

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
# dynverAssertVersion verify: version == ThisBuild / dynver
2-
# But `ThisBuild / dynver` is a task and `version` is a setting
3-
# `version` is initialized at sbt loading time, depends on `dynverCurrentDate`
4-
# and `dynver` is dynamically changed base on `new Date`
5-
# see sbtdynver.DynVerPlugin.buildSettings
6-
# So we need to `reload` here
7-
> reload
8-
> dynverAssertVersion
1+
> qaVersion
92
$ exec git init
103
$ exec git config user.email "[email protected]"
114
$ exec git config user.name "Bui Viet Thanh"

0 commit comments

Comments
 (0)