diff options
author | Diego <diegolparra@gmail.com> | 2016-12-04 15:37:51 -0300 |
---|---|---|
committer | Diego <diegolparra@gmail.com> | 2016-12-04 15:37:51 -0300 |
commit | 56039ef037d42cb817d0bc6d5a5891bc87e633c3 (patch) | |
tree | 711d36b49d69f7321ea75172d9d4969e318d7afe /project/Release.scala | |
parent | e02d137ab960676cb89ff597bc33915f8b83a4d2 (diff) | |
download | Kamon-56039ef037d42cb817d0bc6d5a5891bc87e633c3.tar.gz Kamon-56039ef037d42cb817d0bc6d5a5891bc87e633c3.tar.bz2 Kamon-56039ef037d42cb817d0bc6d5a5891bc87e633c3.zip |
wip
Diffstat (limited to 'project/Release.scala')
-rw-r--r-- | project/Release.scala | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/project/Release.scala b/project/Release.scala new file mode 100644 index 00000000..a388a66f --- /dev/null +++ b/project/Release.scala @@ -0,0 +1,80 @@ +/* ========================================================================================= + * Copyright © 2013-2014 the kamon project <http://kamon.io/> + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + * ========================================================================================= + */ + +import com.typesafe.sbt.pgp._ +import sbt._ +import sbt.Keys._ +import sbtrelease.ReleasePlugin._ +import sbtrelease.ReleaseStateTransformations._ +import sbtrelease.ReleaseStep +import sbtrelease.Utilities._ +import xerial.sbt.Sonatype._ + +object Release { + + def settings = Seq.empty ++ + releaseSettings ++ + Seq( + ReleaseKeys.releaseProcess := Seq[ReleaseStep]( + checkSnapshotDependencies, + inquireVersions, + runClean, + runTest, + setReleaseVersion, + commitReleaseVersion, // .copy(check = identity), // FIX 0: to skip "all changes committed" precondition + tagRelease, + publishSignedArtifacts, // FIX 1: publish signed. Otherwise sonatype won't sync artifact to maven central + setNextVersion, + commitNextVersion, + pushChanges, + refreshVersionWithSHA // FIX 2: update "version" by replacing the "-SNAPSHOT" with "-WHATEVER_COMMIT_SHA" + ) + ) ++ + sonatypeSettings ++ + Seq( + // sbt-sonatype overrides publishTo. So we need to restore kamon repo declaration for snapshots + publishTo := { if (isSnapshot.value) Publish.kamonRepo else publishTo.value } + ) + + + def kamonSonatypeCredentials = + Credentials.toDirect(Credentials(Path.userHome / ".ivy2" / "kamon-credentials-sonatype.properties")) + + /** + * Hijacked from [[sbtrelease.ReleaseStateTransformations.publishArtifacts]] + */ + lazy val publishSignedArtifacts = ReleaseStep( + action = { st: State => + val extracted = st.extract + val ref = extracted.get(thisProjectRef) + extracted.runAggregated(PgpKeys.publishSigned in Global in ref, st) + }, + check = st => { + // getPublishTo fails if no publish repository is set up. + val ex = st.extract + val ref = ex.get(thisProjectRef) + Classpaths.getPublishTo(ex.get(publishTo in Global in ref)) + st + }, + enableCrossBuild = true + ) + + lazy val refreshVersionWithSHA = ReleaseStep(st => { + reapply(Seq( + version in ThisBuild := VersionWithSHA.kamonVersionWithSHA(st.extract.get(version)) + ), st) + }) + +}
\ No newline at end of file |