mirror of https://github.com/sbt/sbt.git
109 lines
3.1 KiB
Scala
109 lines
3.1 KiB
Scala
// import sbt._
|
|
// import Keys._
|
|
|
|
// import java.io.File
|
|
// import java.util.UUID.randomUUID
|
|
|
|
// object SbtScriptedIT extends AutoPlugin {
|
|
|
|
// object autoImport {
|
|
// val scriptedTestSbtRepo = settingKey[String]("SBT repository to be used in scripted tests")
|
|
// val scriptedTestSbtRef = settingKey[String]("SBT branch to be used in scripted tests")
|
|
// val scriptedTestLMImpl = settingKey[String]("Librarymanagement implementation to be used in scripted tests")
|
|
// val scriptedSbtVersion = settingKey[String]("SBT version to be published locally for IT tests")
|
|
// }
|
|
|
|
// import autoImport._
|
|
// override def requires = ScriptedPlugin
|
|
|
|
// override def trigger = noTrigger
|
|
|
|
// override lazy val globalSettings = Seq(
|
|
// scriptedTestSbtRepo := "https://github.com/sbt/sbt.git",
|
|
// scriptedTestSbtRef := "develop",
|
|
// scriptedTestLMImpl := "ivy",
|
|
// scriptedSbtVersion := s"""${sbtVersion.value}-LM-SNAPSHOT"""
|
|
// )
|
|
|
|
// private def cloneSbt(targetDir: File, repo: String, ref: String) = {
|
|
// import org.eclipse.jgit.api._
|
|
|
|
// if (!targetDir.exists) {
|
|
// IO.createDirectory(targetDir)
|
|
|
|
// new CloneCommand()
|
|
// .setDirectory(targetDir)
|
|
// .setURI(repo)
|
|
// .call()
|
|
|
|
// val git = Git.open(targetDir)
|
|
|
|
// git.checkout().setName(ref).call()
|
|
// }
|
|
// }
|
|
|
|
// private def publishLocalSbt(
|
|
// targetDir: File,
|
|
// lmVersion: String,
|
|
// lmGroupID: String,
|
|
// lmArtifactID: String,
|
|
// version: String) = {
|
|
// import sys.process._
|
|
// Process(
|
|
// Seq(
|
|
// "sbt",
|
|
// "-J-Xms2048m",
|
|
// "-J-Xmx2048m",
|
|
// "-J-XX:ReservedCodeCacheSize=256m",
|
|
// "-J-XX:MaxMetaspaceSize=512m",
|
|
// s"""-Dsbt.build.lm.version=${lmVersion}""",
|
|
// s"""-Dsbt.build.lm.organization=${lmGroupID}""",
|
|
// s"""-Dsbt.build.lm.moduleName=${lmArtifactID}""",
|
|
// s"""set ThisBuild / version := "${version}"""",
|
|
// "clean",
|
|
// "publishLocal"
|
|
// ),
|
|
// Some(targetDir)
|
|
// ) !
|
|
// }
|
|
|
|
// private def setScriptedTestsSbtVersion(baseDir: File, version: String) = {
|
|
// IO.listFiles(baseDir).foreach { d =>
|
|
// if (d.isDirectory) {
|
|
// IO.createDirectory(d / "project")
|
|
// IO.write(
|
|
// d / "project" / "build.properties",
|
|
// s"sbt.version=$version"
|
|
// )
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// import sbt.ScriptedPlugin.autoImport._
|
|
|
|
// override lazy val projectSettings = Seq(
|
|
// scriptedTests := {
|
|
// val targetDir = target.value / "sbt"
|
|
|
|
// if (!targetDir.exists) {
|
|
// cloneSbt(targetDir, scriptedTestSbtRepo.value, scriptedTestSbtRef.value)
|
|
|
|
// publishLocalSbt(
|
|
// targetDir,
|
|
// version.value,
|
|
// organization.value,
|
|
// s"librarymanagement-${scriptedTestLMImpl.value}",
|
|
// scriptedSbtVersion.value
|
|
// )
|
|
// }
|
|
|
|
// setScriptedTestsSbtVersion(
|
|
// sbtTestDirectory.value / thisProject.value.id,
|
|
// scriptedSbtVersion.value
|
|
// )
|
|
|
|
// scriptedTests.value
|
|
// }
|
|
// )
|
|
// }
|