Skip to content

Commit a8a6998

Browse files
committed
Revert "Add PublishCredentialsModule, MavenPublish and MavenPublishModule (#6023)"
This reverts commit 6d9f383.
1 parent 338ee1f commit a8a6998

File tree

7 files changed

+85
-241
lines changed

7 files changed

+85
-241
lines changed

libs/javalib/src/mill/javalib/MavenPublish.scala

Lines changed: 0 additions & 85 deletions
This file was deleted.

libs/javalib/src/mill/javalib/MavenPublishModule.scala

Lines changed: 0 additions & 42 deletions
This file was deleted.

libs/javalib/src/mill/javalib/PublishCredentialsModule.scala

Lines changed: 0 additions & 42 deletions
This file was deleted.

libs/javalib/src/mill/javalib/SonatypeCentralPublishModule.scala

Lines changed: 81 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
11
package mill.javalib
22

33
import com.lihaoyi.unroll
4-
import com.lumidion.sonatype.central.client.core.PublishingType
5-
import com.lumidion.sonatype.central.client.core.SonatypeCredentials
4+
import com.lumidion.sonatype.central.client.core.{PublishingType, SonatypeCredentials}
65
import mill.*
7-
import mill.api.BuildCtx
6+
import javalib.*
7+
import mill.api.{ExternalModule, Task}
8+
import mill.util.Tasks
89
import mill.api.DefaultTaskModule
9-
import mill.api.ExternalModule
1010
import mill.api.Result
11-
import mill.api.Task
11+
import mill.javalib.SonatypeCentralPublishModule.{
12+
defaultAwaitTimeout,
13+
defaultConnectTimeout,
14+
defaultCredentials,
15+
defaultReadTimeout,
16+
getPublishingTypeFromReleaseFlag,
17+
getSonatypeCredentials
18+
}
19+
import mill.javalib.publish.Artifact
20+
import mill.javalib.publish.SonatypeHelpers.{PASSWORD_ENV_VARIABLE_NAME, USERNAME_ENV_VARIABLE_NAME}
21+
import mill.api.BuildCtx
1222
import mill.api.daemon.Logger
1323
import mill.javalib.PublishModule.PublishData
14-
import mill.javalib.SonatypeCentralPublishModule.defaultAwaitTimeout
15-
import mill.javalib.SonatypeCentralPublishModule.defaultConnectTimeout
16-
import mill.javalib.SonatypeCentralPublishModule.defaultCredentials
17-
import mill.javalib.SonatypeCentralPublishModule.defaultReadTimeout
18-
import mill.javalib.SonatypeCentralPublishModule.getPublishingTypeFromReleaseFlag
1924
import mill.javalib.internal.PublishModule.GpgArgs
20-
import mill.javalib.publish.Artifact
21-
import mill.javalib.publish.SonatypeHelpers.CREDENTIALS_ENV_VARIABLE_PREFIX
22-
import mill.util.Tasks
2325

24-
import javalib.*
25-
26-
trait SonatypeCentralPublishModule extends PublishModule, MavenWorkerSupport,
27-
PublishCredentialsModule {
26+
trait SonatypeCentralPublishModule extends PublishModule, MavenWorkerSupport {
2827

2928
@deprecated("Use `sonatypeCentralGpgArgsForKey` instead.", "Mill 1.0.1")
3029
def sonatypeCentralGpgArgs: T[String] =
@@ -64,7 +63,7 @@ trait SonatypeCentralPublishModule extends PublishModule, MavenWorkerSupport,
6463
@unroll docs: Boolean = true
6564
): Task.Command[Unit] = Task.Command {
6665
val artifact = artifactMetadata()
67-
val credentials = getPublishCredentials(CREDENTIALS_ENV_VARIABLE_PREFIX, username, password)()
66+
val credentials = getSonatypeCredentials(username, password)()
6867
val publishData = publishArtifactsPayload(sources = sources, docs = docs)()
6968
val publishingType = getPublishingTypeFromReleaseFlag(sonatypeCentralShouldRelease())
7069

@@ -98,8 +97,8 @@ trait SonatypeCentralPublishModule extends PublishModule, MavenWorkerSupport,
9897
/**
9998
* External module to publish artifacts to `central.sonatype.org`
10099
*/
101-
object SonatypeCentralPublishModule extends ExternalModule, DefaultTaskModule, MavenWorkerSupport,
102-
PublishCredentialsModule, MavenPublish {
100+
object SonatypeCentralPublishModule extends ExternalModule with DefaultTaskModule
101+
with MavenWorkerSupport {
103102
private final val sonatypeCentralGpgArgsSentinelValue = "<user did not override this method>"
104103

105104
def self = this
@@ -128,7 +127,7 @@ object SonatypeCentralPublishModule extends ExternalModule, DefaultTaskModule, M
128127
val artifacts = Task.sequence(publishArtifacts.value)()
129128

130129
val finalBundleName = if (bundleName.isEmpty) None else Some(bundleName)
131-
val credentials = getPublishCredentials(CREDENTIALS_ENV_VARIABLE_PREFIX, username, password)()
130+
val credentials = getSonatypeCredentials(username, password)()
132131
def makeGpgArgs() = internal.PublishModule.pgpImportSecretIfProvidedAndMakeGpgArgs(
133132
Task.env,
134133
GpgArgs.fromUserProvided(gpgArgs)
@@ -170,17 +169,37 @@ object SonatypeCentralPublishModule extends ExternalModule, DefaultTaskModule, M
170169
val dryRun = env.get("MILL_TESTS_PUBLISH_DRY_RUN").contains("1")
171170

172171
def publishSnapshot(publishData: PublishData): Unit = {
173-
mavenPublishData(
174-
dryRun = dryRun,
175-
publishData = publishData,
176-
isSnapshot = true,
177-
credentials = credentials,
178-
releaseUri = sonatypeCentralSnapshotUri,
179-
snapshotUri = sonatypeCentralSnapshotUri,
180-
taskDest = taskDest,
181-
log = log,
182-
worker = worker
172+
val uri = sonatypeCentralSnapshotUri
173+
val artifacts = MavenWorkerSupport.RemoteM2Publisher.asM2ArtifactsFromPublishDatas(
174+
publishData.meta,
175+
publishData.payloadAsMap
183176
)
177+
178+
log.info(
179+
s"Detected a 'SNAPSHOT' version for ${publishData.meta}, publishing to Sonatype Central Snapshots at '$uri'"
180+
)
181+
182+
/** Maven uses this as a workspace for file manipulation. */
183+
val mavenWorkspace = taskDest / "maven"
184+
185+
if (dryRun) {
186+
val publishTo = taskDest / "repository"
187+
val result = worker.publishToLocal(
188+
publishTo = publishTo,
189+
workspace = mavenWorkspace,
190+
artifacts
191+
)
192+
log.info(s"Dry-run publishing to '$publishTo' finished with result: $result")
193+
} else {
194+
val result = worker.publishToRemote(
195+
uri = uri,
196+
workspace = mavenWorkspace,
197+
username = credentials.username,
198+
password = credentials.password,
199+
artifacts
200+
)
201+
log.info(s"Publishing to '$uri' finished with result: $result")
202+
}
184203
}
185204

186205
def publishReleases(artifacts: Seq[PublishData], gpgArgs: GpgArgs): Unit = {
@@ -239,5 +258,36 @@ object SonatypeCentralPublishModule extends ExternalModule, DefaultTaskModule, M
239258
}
240259
}
241260

261+
private def getSonatypeCredential(
262+
credentialParameterValue: String,
263+
credentialName: String,
264+
envVariableName: String
265+
): Task[String] = Task.Anon {
266+
if (credentialParameterValue.nonEmpty) {
267+
Result.Success(credentialParameterValue)
268+
} else {
269+
(for {
270+
credential <- Task.env.get(envVariableName)
271+
} yield {
272+
Result.Success(credential)
273+
}).getOrElse(
274+
Result.Failure(
275+
s"No $credentialName set. Consider using the $envVariableName environment variable or passing `$credentialName` argument"
276+
)
277+
)
278+
}
279+
}
280+
281+
private def getSonatypeCredentials(
282+
usernameParameterValue: String,
283+
passwordParameterValue: String
284+
): Task[SonatypeCredentials] = Task.Anon {
285+
val username =
286+
getSonatypeCredential(usernameParameterValue, "username", USERNAME_ENV_VARIABLE_NAME)()
287+
val password =
288+
getSonatypeCredential(passwordParameterValue, "password", PASSWORD_ENV_VARIABLE_NAME)()
289+
Result.Success(SonatypeCredentials(username, password))
290+
}
291+
242292
lazy val millDiscover: mill.api.Discover = mill.api.Discover[this.type]
243293
}

libs/javalib/src/mill/javalib/publish/SonatypeHelpers.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ import java.security.MessageDigest
88
object SonatypeHelpers {
99
// http://central.sonatype.org/pages/working-with-pgp-signatures.html#signing-a-file
1010

11-
val CREDENTIALS_ENV_VARIABLE_PREFIX = "MILL_SONATYPE"
12-
val USERNAME_ENV_VARIABLE_NAME = s"${CREDENTIALS_ENV_VARIABLE_PREFIX}_USERNAME"
13-
val PASSWORD_ENV_VARIABLE_NAME = s"${CREDENTIALS_ENV_VARIABLE_PREFIX}_PASSWORD"
11+
val USERNAME_ENV_VARIABLE_NAME = "MILL_SONATYPE_USERNAME"
12+
val PASSWORD_ENV_VARIABLE_NAME = "MILL_SONATYPE_PASSWORD"
1413

1514
private[mill] def getArtifactMappings(
1615
isSigned: Boolean,
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package mill.scalalib
22

33
object Dependency extends mill.api.ExternalModule.Alias(mill.javalib.Dependency)
4-
object MavenPublishModule
5-
extends mill.api.ExternalModule.Alias(mill.javalib.MavenPublishModule)
64
object SonatypeCentralPublishModule
75
extends mill.api.ExternalModule.Alias(mill.javalib.SonatypeCentralPublishModule)

0 commit comments

Comments
 (0)