mirror of https://github.com/sbt/sbt.git
Use Bintray for nightly
This commit is contained in:
parent
427966a2bc
commit
4499149887
|
|
@ -1,6 +1,7 @@
|
|||
name: Nightly
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
|
|
@ -19,19 +20,19 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: sbt/io
|
||||
ref: wip/nightly
|
||||
ref: develop
|
||||
path: io
|
||||
- name: Checkout sbt/librarymanagement
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: sbt/librarymanagement
|
||||
ref: wip/nightly
|
||||
ref: develop
|
||||
path: librarymanagement
|
||||
- name: Checkout sbt/zinc
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: sbt/zinc
|
||||
ref: wip/nightly
|
||||
ref: develop
|
||||
path: zinc
|
||||
- name: Setup
|
||||
uses: olafurpg/setup-scala@v10
|
||||
|
|
@ -44,11 +45,10 @@ jobs:
|
|||
# build from fresh IO, LM, and Zinc
|
||||
TIMESTAMP=$(TZ=UTC date +%Y%m%dT%H%M%S)
|
||||
export BUILD_VERSION="1.4.0-bin-${TIMESTAMP}"
|
||||
echo publishing to Package Registry $RELEASE_GITHUB_PACKAGE_REGISTRY
|
||||
cd io
|
||||
sbt -v -Dsbt.sbtbintray=false +publish
|
||||
sbt -v +publish
|
||||
cd ../
|
||||
sbt -Dsbtlm.path=$HOME/work/sbt/sbt/librarymanagement -Dsbtzinc.path=$HOME/work/sbt/sbt/zinc -Dsbt.sbtbintray=false -Dsbt.build.fatal=false "+lowerUtils/publish; {librarymanagement}/publish; {zinc}/publish; upperModules/publish"
|
||||
sbt -Dsbtlm.path=$HOME/work/sbt/sbt/librarymanagement -Dsbtzinc.path=$HOME/work/sbt/sbt/zinc -Dsbt.build.fatal=false "+lowerUtils/publish; {librarymanagement}/publish; {zinc}/publish; upperModules/publish"
|
||||
rm -rf "$HOME/.ivy2/local" || true
|
||||
rm -r $(find $HOME/.sbt/boot -name "*-SNAPSHOT") || true
|
||||
find $HOME/Library/Caches/Coursier/v1 -name "ivydata-*.properties" -delete || true
|
||||
|
|
@ -56,5 +56,7 @@ jobs:
|
|||
find $HOME/.cache/coursier/v1 -name "ivydata-*.properties" -delete || true
|
||||
find $HOME/.sbt -name "*.lock" -delete || true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RELEASE_GITHUB_PACKAGE_REGISTRY: sbt/sbt
|
||||
BINTRAY_USER: ${{ secrets.BINTRAY_USER }}
|
||||
BINTRAY_PASS: ${{ secrets.BINTRAY_PASS }}
|
||||
BINTRAY_REPOSITORY: maven-snapshots
|
||||
BINTRAY_PACKAGE: sbt
|
||||
|
|
|
|||
35
build.sbt
35
build.sbt
|
|
@ -31,13 +31,7 @@ def buildLevelSettings: Seq[Setting[_]] =
|
|||
Seq(
|
||||
organization := "org.scala-sbt",
|
||||
description := "sbt is an interactive build tool",
|
||||
bintrayOrganization := Some("sbt"),
|
||||
bintrayRepository := {
|
||||
if (publishStatus.value == "releases") "maven-releases"
|
||||
else "maven-snapshots"
|
||||
},
|
||||
bintrayPackage := "sbt",
|
||||
bintrayReleaseOnPublish := false,
|
||||
bintrayPackage := sys.env.get("BINTRAY_PACKAGE").getOrElse("sbt"),
|
||||
licenses := List("Apache-2.0" -> url("https://github.com/sbt/sbt/blob/develop/LICENSE")),
|
||||
javacOptions ++= Seq("-source", "1.8", "-target", "1.8"),
|
||||
Compile / doc / javacOptions := Nil,
|
||||
|
|
@ -108,8 +102,6 @@ def commonBaseSettings: Seq[Setting[_]] = Def.settings(
|
|||
Test / unmanagedSources / inputFileStamps :=
|
||||
(Test / unmanagedSources / inputFileStamps).dependsOn(Test / javafmtOnCompile).value,
|
||||
crossScalaVersions := Seq(baseScalaVersion),
|
||||
bintrayPackage := (bintrayPackage in ThisBuild).value,
|
||||
bintrayRepository := (bintrayRepository in ThisBuild).value,
|
||||
publishArtifact in Test := false,
|
||||
fork in run := true,
|
||||
)
|
||||
|
|
@ -1534,33 +1526,8 @@ def customCommands: Seq[Setting[_]] = Seq(
|
|||
"bundledLauncherProj/publishLauncher" ::
|
||||
state
|
||||
},
|
||||
// stamp-version doesn't work with ++ or "so".
|
||||
commands += Command.command("release-nightly") { state =>
|
||||
"stamp-version" ::
|
||||
"clean" ::
|
||||
"compile" ::
|
||||
"publish" ::
|
||||
"bintrayRelease" ::
|
||||
state
|
||||
}
|
||||
)
|
||||
|
||||
def githubPackageRegistry: Option[Resolver] =
|
||||
sys.env.get("RELEASE_GITHUB_PACKAGE_REGISTRY") map { repo =>
|
||||
s"GitHub Package Registry ($repo)" at s"https://maven.pkg.github.com/$repo"
|
||||
}
|
||||
ThisBuild / publishTo := {
|
||||
val old = (ThisBuild / publishTo).value
|
||||
githubPackageRegistry orElse old
|
||||
}
|
||||
ThisBuild / resolvers ++= githubPackageRegistry.toList
|
||||
ThisBuild / credentials ++= {
|
||||
sys.env.get("GITHUB_TOKEN") match {
|
||||
case Some(token) =>
|
||||
List(Credentials("GitHub Package Registry", "maven.pkg.github.com", "unused", token))
|
||||
case _ => Nil
|
||||
}
|
||||
}
|
||||
ThisBuild / whitesourceProduct := "Lightbend Reactive Platform"
|
||||
ThisBuild / whitesourceAggregateProjectName := {
|
||||
// note this can get detached on tag build etc
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ object HouseRulesPlugin extends AutoPlugin {
|
|||
|
||||
lazy val baseBuildSettings: Seq[Def.Setting[_]] = Seq(
|
||||
bintrayOrganization := Some("sbt"),
|
||||
bintrayRepository := "maven-releases",
|
||||
bintrayRepository := sys.env.get("BINTRAY_REPOSITORY").getOrElse("maven-releases"),
|
||||
)
|
||||
|
||||
lazy val baseSettings: Seq[Def.Setting[_]] = Seq(
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
import sbt._
|
||||
import Keys._
|
||||
|
||||
object StatusPlugin extends AutoPlugin {
|
||||
override def requires = plugins.JvmPlugin
|
||||
override def trigger = allRequirements
|
||||
|
||||
object autoImport {
|
||||
lazy val publishStatus = settingKey[String]("possible values are snapshots or releases.")
|
||||
}
|
||||
|
||||
import autoImport._
|
||||
|
||||
override def buildSettings: Seq[Setting[_]] = Seq(
|
||||
isSnapshot := {
|
||||
val SnapshotQualifier = """(.+)(-.*SNAPSHOT)(.*)""".r
|
||||
val v = version.value
|
||||
v match {
|
||||
case SnapshotQualifier(_, _, _) => true
|
||||
case _ => false
|
||||
}
|
||||
},
|
||||
publishStatus := {
|
||||
if (isSnapshot.value) "snapshots"
|
||||
else "releases"
|
||||
},
|
||||
commands += stampVersion
|
||||
)
|
||||
def stampVersion = Command.command("stamp-version") { state =>
|
||||
val extracted = Project.extract(state)
|
||||
val status = extracted.get(publishStatus)
|
||||
// Set new version AND lock down the publishStatus to what it was, as
|
||||
// our release regexes no longer support ivy data format, due to other issues.
|
||||
extracted.appendWithSession(
|
||||
(version in ThisBuild ~= stamp) ::
|
||||
(publishStatus in ThisBuild := status) ::
|
||||
Nil,
|
||||
state
|
||||
)
|
||||
}
|
||||
def stamp(v: String): String = {
|
||||
val Snapshot = "-SNAPSHOT"
|
||||
if (v endsWith Snapshot)
|
||||
(v stripSuffix Snapshot) + "-" + timestampString(System.currentTimeMillis)
|
||||
else sys.error("Release version '" + v + "' cannot be stamped")
|
||||
}
|
||||
def timestampString(time: Long): String = {
|
||||
val format = new java.text.SimpleDateFormat("yyyyMMdd-HHmmss")
|
||||
format.format(new java.util.Date(time))
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue