Use Bintray for nightly

This commit is contained in:
Eugene Yokota 2020-11-15 01:12:02 -05:00
parent 427966a2bc
commit 4499149887
4 changed files with 12 additions and 94 deletions

View File

@ -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

View File

@ -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

View File

@ -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(

View File

@ -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))
}
}