From ad41b56d6fbd482073075fd1abd31e3989f190e6 Mon Sep 17 00:00:00 2001 From: Juan Pedro Moreno Date: Mon, 23 Jan 2017 23:59:38 +0100 Subject: [PATCH] It adds: - Common sbt-settings - https://travis-ci.org/scala-exercises settings - Publish settings under scala-exercises organization --- .gitignore | 1 - .travis.yml | 13 ++++++++++--- build.sbt | 31 ++++++++++++++++++++++++++++++- project/plugins.sbt | 3 ++- pubring.gpg | 18 ++++++++++++++++++ secring.gpg.enc | Bin 0 -> 1856 bytes 6 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 pubring.gpg create mode 100644 secring.gpg.enc diff --git a/.gitignore b/.gitignore index 30ec60e3..561d1b8d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,5 +32,4 @@ bin/ .DS_Store # PGP keys -pubring.gpg secring.gpg diff --git a/.travis.yml b/.travis.yml index 11152e09..9327ef3e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,14 @@ language: scala scala: - - 2.11.8 +- 2.11.8 jdk: - - oraclejdk8 +- oraclejdk8 script: - - sbt test \ No newline at end of file +- sbt test +- if [ "$TRAVIS_BRANCH" = "master" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then + openssl aes-256-cbc -K $encrypted_40545b9562dd_key -iv $encrypted_40545b9562dd_iv + -in secring.gpg.enc -out secring.gpg -d; + fi +after_success: +- if [ "$TRAVIS_BRANCH" = "master" -a "$TRAVIS_PULL_REQUEST" = "false" ]; then sbt + compile publishSigned; fi diff --git a/build.sbt b/build.sbt index ef1b5912..81daa82d 100644 --- a/build.sbt +++ b/build.sbt @@ -1,5 +1,6 @@ lazy val `scala-tutorial` = (project in file(".")) .enablePlugins(ExerciseCompilerPlugin) + .settings(publishSettings:_*) .settings( organization := "org.scala-exercises", name := "exercises-scalatutorial", @@ -17,4 +18,32 @@ lazy val `scala-tutorial` = (project in file(".")) "com.github.alexarchambault" %% "scalacheck-shapeless_1.12" % "0.3.1", compilerPlugin("org.spire-math" %% "kind-projector" % "0.7.1") ) - ) \ No newline at end of file + ) + +// Distribution + +lazy val gpgFolder = sys.env.getOrElse("PGP_FOLDER", ".") + +lazy val publishSettings = Seq( + organizationName := "Scala Exercises", + organizationHomepage := Some(new URL("http://scala-exercises.org")), + startYear := Some(2016), + description := "Scala Exercises: The path to enlightenment", + homepage := Some(url("http://scala-exercises.org")), + pgpPassphrase := Some(sys.env.getOrElse("PGP_PASSPHRASE", "").toCharArray), + pgpPublicRing := file(s"$gpgFolder/pubring.gpg"), + pgpSecretRing := file(s"$gpgFolder/secring.gpg"), + credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", sys.env.getOrElse("PUBLISH_USERNAME", ""), sys.env.getOrElse("PUBLISH_PASSWORD", "")), + scmInfo := Some(ScmInfo(url("https://github.com/scala-exercises/exercises-scalatutorial"), "https://github.com/scala-exercises/exercises-scalatutorial.git")), + licenses := Seq("Apache License, Version 2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0.txt")), + publishMavenStyle := true, + publishArtifact in Test := false, + pomIncludeRepository := Function.const(false), + publishTo := { + val nexus = "https://oss.sonatype.org/" + if (isSnapshot.value) + Some("Snapshots" at nexus + "content/repositories/snapshots") + else + Some("Releases" at nexus + "service/local/staging/deploy/maven2") + } +) \ No newline at end of file diff --git a/project/plugins.sbt b/project/plugins.sbt index fef1eb88..e2ec115d 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,2 +1,3 @@ resolvers += Resolver.sonatypeRepo("snapshots") -addSbtPlugin("org.scala-exercises" % "sbt-exercise" % "0.3.0-SNAPSHOT", "0.13", "2.10") \ No newline at end of file +addSbtPlugin("org.scala-exercises" % "sbt-exercise" % "0.3.0-SNAPSHOT", "0.13", "2.10") +addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0") \ No newline at end of file diff --git a/pubring.gpg b/pubring.gpg new file mode 100644 index 00000000..c7e3925b --- /dev/null +++ b/pubring.gpg @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.51 + +mQENBFgGJjoBCACkQzvPI+1VtMYz252a3i3wm1dKrsF5v/E//IsYLMsXx/4BICES +bjZchmCbaIqjaNrfBxRAR20KbWVXbUptDJgXA/WOyGEUfDvS6Kfm1F6A34qVyCIr +NPEIeDVM64nLpQFrNuIiFPlTj9eXbKPRbV0eUrtKH59iplB4DCboK4ysGX3Hk/A3 +nzmAf9+Lt9N8vuzO8ymYvdWfdzQsVPCSXkKhK2qpT+ORIPAPWGdXmZ6Rr1wAGwqY ++x0iVSL2IFs5MqDvBbDoyfnt14UVffJlI6O0C+flIY+kSCp86pYQrHHaCnWrnALU +L8Cb/DJ7DODpd99bDHtkuMHUn4BO4WmoI69zABEBAAG0JXNjYWxhLWV4ZXJjaXNl +cyA8ZGV2ZWxvcGVyQDQ3ZGVnLmNvbT6JARwEEwECAAYFAlgGJjoACgkQT9ktcdDT +ZI66CQgAkGDi0EOapqJbFMiNTH85IelGs2c04aNPnEGZh+dUHqpJvA785PduXtzT +XEP8DVP4zgjfGoDyiaJWBVXyg6Ch7XZ6gNodgOS7oQu5nFsA6ZBtwVy0qfRjfK2E +NEIvRuNjQuAlDTDHRfDtZmFIDSd4YR/smJL7BVrO5eT+qsbeluZGGi54TY/zwLbe +TefcUmTixDhm5LGyVPKiEdZwk6o385+9IAFycFozb9K/1NSTBM1GbZBMR/WuACbT +K+DDtqUnGk1cZmNbWzoVabNnubVhGnhMC9AW24pzHu+xEk13yXsPWVikB6NbVg50 +TBkuFf9IEXMEzanKMDDMOatih3a8bg== +=fR5S +-----END PGP PUBLIC KEY BLOCK----- diff --git a/secring.gpg.enc b/secring.gpg.enc new file mode 100644 index 0000000000000000000000000000000000000000..2f82f161142dcb7e2ad8cb4eb0b98392b59089be GIT binary patch literal 1856 zcmV-G2fz3|bRM|o<0E1?q4NNj9!81mQ|Uk>K}B@!MAj>y`7Y@S*jQGYg)g$t4iC)1 zZ7k+kTov)kg6G-9wK=+}cElGxF7%rqI~03~_KuwnTOkLws1q2J2ICBWj0^zz2!z*cG$J@>>QL&U|*6UP`h|HOXOJ(JN&5u*0~`~cVd z#|`(ul($IO%Xg78J}j$0Zi624AIf0tmsD6HsBNVNrV5~nhok# zU(rA{x=JOhZE3ZabM}~6@e?i}fOI9hx!{=3Wm6!w6rrXe`I|Qy53TmJ+AK843r2+~ zimT}mjrqAi{Hpba{S3z&d$X25`5;t@cV(wx(QMJ2=4R*+22NAkga%2Ty!*d6U9&f> zIWtG-t*(2a5DQ9f!UWt1UF?{`jIR!9Um<86uIo4cIxB&D_pD?vSA8>m{JM1~vsa`9 zm9`SZL-O4WzOUmCBLCE9*es3fiuwME@}XK`c0E$J#z)4tUVS!R2f73z zpl91CulV3SUW@(>WKVegB1{b9snYbcKCc0CK!*4~T$GE9fxqGJK~snt9-KpvRlUYEyiF4!!4Y(L1`bi5w(G}MiV_4 zwyXb~p&yl+@lu_7$7K!w|FG%#D8l|WaA12#sa0+S+gpg*%u(erx$?>CKl=fZMYTc` zgupFN zpknHQl=LC7N;*#Aci1*PRe4hNIvJm~?kn_o%lja6(d3T&-eU=Ykmf}ED7E3A;jT8b z7AB7k-Ee-q>jauNV!_mwC)cNN%r=#*JDG%)i;ZIeMqF3H@*A6zDSrGqfQ`GOQurRL zj~guCs{8l1nl3J!7@+Opdywuhk3E42KLqoNI0MwAz~VCs@bbX50e2@cJoq+7+e~pX zLAeaw_tzTNCSTtnaqiStOFs(Q%O+X^V5yz|jXk8GYV#z()I4at4DDh7JfcjRE?AXu*0pGykyBLkUWc`GtQWL88>|MdS}oX{#R(8fo-5nt1*6 z1YF~7{lkY&ve5vT=Zk&LNzXhc((wC0ORj0kkQw9b23OJM$(JYVR zu}>B5LV@jPxXFq!3S)p-VOLBYB?H~4jIGj33qvn#Dr*%+NzRFL90Xy_ zNv`a}QaXgP)@RYgooaOQ!olv`#JVu2hvLs`LNtPH#AfDjbzYi2M3}|bYVGM_beA2Q z>ZpX?@#W$PVqsN4l+v1sN?a@1sF*MVa(vIn0$nqS%s0wC8DKOK&K@N(N$@mz{2_N{ z9WlrnE81D=ldGWRMlv>}XU#Iy>7A`5-~~Qvd9M2R{Fw0eIB4)NK|Cyi4$9CNO%>21 zZjuYpE2ze>1c)+8+~tVwa=dmDFA>)exu@&t-S>b&SvzxzjyZx99D+0;5C4}{f`9$4 zWgr`jpre?tuuIA_FCx~bHMUh@vO;fDNB*MqnF^#5p#-~yZ;EgLoZKXgx&&RZwIlk3 zDOuYpcr+@l9r*)d0lb{DB+2v#sZFu*_dCI5ljpAKX25ls{4eULB`8AbF**wz*NE_l+t7syUQNps7HM z%p_mR%