Skip to content

Commit

Permalink
Merge pull request #388 from UdashFramework/travis-publish
Browse files Browse the repository at this point in the history
Travis publish
  • Loading branch information
ddworak committed Sep 10, 2019
2 parents ff10a17 + 8333caf commit e893196
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 49 deletions.
62 changes: 38 additions & 24 deletions .travis.yml
@@ -1,49 +1,64 @@
sudo: required
dist: trusty

language: scala

addons:
firefox: latest

before_script:
# Install firefox-driver
- wget https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz
- mkdir geckodriver
- tar -xzf geckodriver-v0.24.0-linux64.tar.gz -C geckodriver
- export PATH=$PWD/geckodriver:$PATH
- openssl aes-256-cbc -K $encrypted_5c7170ca7f9b_key -iv $encrypted_5c7170ca7f9b_iv -in travis/travis.gpg.enc -out travis/travis.gpg -d
- gpg --import travis/travis.gpg
- npm install jsdom

script:
- xvfb-run sbt -jvm-opts .jvmopts-travis "set concurrentRestrictions in Global += Tags.limit(ScalaJSTags.Link, 1)" ++$TRAVIS_SCALA_VERSION $TEST_PACKAGE

jdk:
- openjdk11
jdk: openjdk11

scala:
- 2.12.9
- 2.11.12

stages:
- test
- name: release
if: tag =~ ^v

env:
- TEST_PACKAGE="guide-selenium/test"
- TEST_PACKAGE="udash-jvm/test"
- TEST_PACKAGE="utils-js/test"
- TEST_PACKAGE="core-js/test"
- TEST_PACKAGE="rpc-js/test"
- TEST_PACKAGE="rest-js/test"
- TEST_PACKAGE="i18n-js/test"
- TEST_PACKAGE="auth-js/test"
- TEST_PACKAGE="css-js/test"
- TEST_PACKAGE="bootstrap/test"
- TEST_PACKAGE="bootstrap4/test"
- TEST_PACKAGE="charts/compile"
- TEST_PACKAGE="benchmarks/compile"
- TEST_PACKAGE="doc"
matrix:
- TEST_PACKAGE="guide-selenium/test"
- TEST_PACKAGE="udash-jvm/test"
- TEST_PACKAGE="utils-js/test"
- TEST_PACKAGE="core-js/test"
- TEST_PACKAGE="rpc-js/test"
- TEST_PACKAGE="rest-js/test"
- TEST_PACKAGE="i18n-js/test"
- TEST_PACKAGE="auth-js/test"
- TEST_PACKAGE="css-js/test"
- TEST_PACKAGE="bootstrap/test"
- TEST_PACKAGE="bootstrap4/test"
- TEST_PACKAGE="charts/compile"
- TEST_PACKAGE="benchmarks/compile"

global:
- secure: fdBpnGod9OiHppoTk8v1uDnHcaG8vzZiORpqVLP0DWVvsdGxCfc2njUStxyD5LrNNTChd0W2aj9Ahchg88mlatheNvP/lnLpoU+1PIDNvshUmhOIVW1HDn4kkJQ783DW/Ch5fhRwupzr0LyW6BY+Ip+P2HIP3x/27ls8OUoX3Dr32BDPaRBQXl3RtFiic+pj1waB2qFK4Wbf4vWT0pSACaJXUGBWJq5LQ6QyTQ+pOcVBX65ZrsX5X6bSrgYapmkBgiNR/+cO7RIXeusHYmc6bchC8t6Rm/DfLosmR1iYMPGvVhTWaWo5t5x/xBAnEzBbKCHV7aE32OH69ed64/CcqtsgzPTT38Y5tvMCbDcUS3EJAqN1xEXdFcMWKkY4xzU2nekAIBdl9PT8Er2i/CCnMzG6/kxVCbnDD+Ujts+yJmWJPZ1dYdGkhhjqs9hpbden7UeAiRswVBt7fjB+crbpJxtLtWdRdwJnrbE7HnpTohG5/tfzZK98rSXou4KfigXmRneiObrp7n1OOOAiy/J70JxiT9hzMBEQVya2shx0v1TZgN39RrvYzN1fWdtvfrVke8XwQnjGxzgtOilQWqqUzBo+p7zx+Q+WALTPv/sU4//gmQFfIimf3b90KbcwzcCh3MwnTfANx0iScc9FktxfDozRvE3RTM/IHDKf9TJgaN8=
- secure: JfVPHMqEITjrDqHbVkQZCR4VLtLUFchunlea7+JoIWpQ2o0RuSUA7jUk+bBG+Avj6qwYSu+1/wmTQY/xRQBTEDTiuf8CKROIX0sPeyTvTcGm31V0z+Ajxu7x4xmLH2hr4/9y35oAwqy0knBK84J3VZ6xGRKO3JQAnk/iotpb2uGj6wjso2rQnG56NNVuM/WIZ5BwRtJrCP7rbyOJTMMT639+ECrmppsEZnODqgARhe5PUT+DRn5MXvH0sayt38SukUkahD5qcnMthP3jbNkaMrZ0RlIAzbOQUvtzt1rwHjeo71V2Dd6q3kLworbkmbmmCbxd7DtWAmTcMir7+91hXLP6r+3q2YFh5juqXXFEDjox0Nqt1nl6sfHAJMEOIuji7XoJLSAK5nOY5OsFZ5WK/yF7JlllaBUFGIJOeQbf4k70Nr6nmer7iHrvaD3H2jhtkyp5cET/0hMNpo7jSnvoAk5l0eZhleWbTgwzbHpjjw/yDPKS+S+q+2DmtTrHcDa1Z79YHps/9hlryGM3kT3mCr2cwFP+aoPnXKGdPuiY95LcVPHeI8TKIopU3lOMXEPX1fTY/xNDauwl9zZfKm2dwJU9Qa3uF5NSgr0s0nzUuj4+VJlTr6tLREAEznPESTwmm9qlHrJPX4aXEDCxRdfgSRFsGoRTqkvoiwozdv8+Z1c=

matrix:
exclude:
- scala: 2.11.12
env: TEST_PACKAGE="guide-selenium/test"

jobs:
include:
- stage: release
scala: 2.12.9
env: TEST_PACKAGE=none
script: test $TRAVIS_PULL_REQUEST = "false" && sbt -jvm-opts .jvmopts-travis +publishSigned sonatypeBundleRelease

before_cache:
# Cleanup the cached directories to avoid unnecessary cache updates
- rm -fv $HOME/.ivy2/.sbt.ivy.lock
Expand All @@ -52,8 +67,7 @@ before_cache:

cache:
directories:
- $HOME/.ivy2/cache
- $HOME/.m2
- $HOME/.coursier/cache
- $HOME/.cache
- $HOME/.sbt
- $HOME/.ivy2/cache
- $HOME/.m2
- $HOME/.cache
- $HOME/.sbt
46 changes: 27 additions & 19 deletions build.sbt
@@ -1,13 +1,13 @@
import org.openqa.selenium.Capabilities
import org.openqa.selenium.firefox.{FirefoxDriverLogLevel, FirefoxOptions}
import org.scalajs.jsenv.nodejs.NodeJSEnv
import org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv
import org.scalajs.jsenv.selenium.SeleniumJSEnv
import org.scalajs.sbtplugin.JSModuleID

name := "udash"

inThisBuild(Seq(
version := "0.8.0-SNAPSHOT",
version := sys.env.get("TRAVIS_TAG").filter(_.startsWith("v")).map(_.drop(1)).getOrElse("0.8.0-SNAPSHOT"),
organization := "io.udash",
cancelable := true,
resolvers += Resolver.defaultLocal
Expand All @@ -28,13 +28,15 @@ val deploymentConfiguration = Seq(
publishArtifact in Test := false,
pomIncludeRepository := { _ => 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")
},
sonatypeBundleDirectory := (ThisBuild / baseDirectory).value / target.value.getName / "sonatype-staging" / s"udash-${version.value}",
publishTo := sonatypePublishToBundle.value,

credentials in Global += Credentials(
"Sonatype Nexus Repository Manager",
"oss.sonatype.org",
sys.env.getOrElse("SONATYPE_USERNAME", ""),
sys.env.getOrElse("SONATYPE_PASSWORD", "")
),

pomExtra := {
<url>https://github.com/UdashFramework/udash-core</url>
Expand Down Expand Up @@ -100,7 +102,7 @@ val commonJsSettings = commonSettings ++ Seq(
Compile / emitSourceMaps := true,
Test / scalaJSStage := FastOptStage,
Test / scalaJSUseMainModuleInitializer := false,
Test / jsEnv := new NodeJSEnv,
Test / jsEnv := new JSDOMNodeJSEnv,
scalacOptions += {
val localDir = (ThisBuild / baseDirectory).value.toURI.toString
val githubDir = "https://raw.githubusercontent.com/UdashFramework/udash-core"
Expand Down Expand Up @@ -188,6 +190,7 @@ def frontendExecutable(proj: Project)(
.settings(commonJsSettings)
.settings(
noPublishSettings,
crossScalaVersions := Seq(Dependencies.versionOfScala),

jsDependencies ++= jsDeps.value,
Compile / emitSourceMaps := true,
Expand Down Expand Up @@ -311,7 +314,6 @@ lazy val rpc = jvmProject(project)
lazy val `rpc-js` = jsProjectFor(project, rpc)
.dependsOn(`utils-js` % CompileAndTest)
.settings(
testInBrowser,
libraryDependencies ++= Dependencies.rpcSjsDeps.value,
jsDependencies ++= Dependencies.rpcJsDeps.value,
)
Expand Down Expand Up @@ -339,14 +341,12 @@ lazy val i18n = jvmProject(project)

lazy val `i18n-js` = jsProjectFor(project, i18n)
.dependsOn(`core-js` % CompileAndTest, `rpc-js` % CompileAndTest)
.settings(testInBrowser)

lazy val auth = jvmProject(project)
.dependsOn(core % CompileAndTest, rpc)

lazy val `auth-js` = jsProjectFor(project, auth)
.dependsOn(`core-js` % CompileAndTest, `rpc-js`)
.settings(testInBrowser)

lazy val css = jvmProject(project)
.dependsOn(core % CompileAndTest)
Expand All @@ -357,14 +357,12 @@ lazy val css = jvmProject(project)
lazy val `css-js` = jsProjectFor(project, css)
.dependsOn(`core-js` % CompileAndTest)
.settings(
testInBrowser,
libraryDependencies ++= Dependencies.cssSjsDeps.value,
)

lazy val bootstrap = jsProject(project)
.dependsOn(`core-js` % CompileAndTest, `css-js`, `i18n-js`)
.settings(
testInBrowser,
libraryDependencies ++= Dependencies.bootstrapSjsDeps.value,
jsDependencies ++= Dependencies.bootstrapJsDeps.value
)
Expand Down Expand Up @@ -413,18 +411,25 @@ lazy val guide = project.in(file("guide"))
lazy val `guide-shared` =
jvmProject(project.in(file("guide/shared")))
.dependsOn(jvmLibraries.map(p => p: ClasspathDep[ProjectReference]): _*)
.settings(noPublishSettings)
.settings(
noPublishSettings,
crossScalaVersions := Seq(Dependencies.versionOfScala),
)

lazy val `guide-shared-js` =
jsProjectFor(project, `guide-shared`)
.dependsOn(jsLibraries.map(p => p: ClasspathDep[ProjectReference]): _*)
.settings(noPublishSettings)
.settings(
noPublishSettings,
crossScalaVersions := Seq(Dependencies.versionOfScala),
)

lazy val `guide-backend` =
jvmProject(project.in(file("guide/backend")))
.dependsOn(`guide-shared`)
.settings(
noPublishSettings,
crossScalaVersions := Seq(Dependencies.versionOfScala),
libraryDependencies ++= Dependencies.backendDeps.value,
Compile / mainClass := Some("io.udash.web.Launcher"),
)
Expand All @@ -435,7 +440,8 @@ lazy val `guide-commons` =
.dependsOn(`guide-shared-js`)
.settings(
noPublishSettings,
libraryDependencies ++= Dependencies.guideFrontendDeps.value
crossScalaVersions := Seq(Dependencies.versionOfScala),
libraryDependencies ++= Dependencies.guideFrontendDeps.value,
)
lazy val `guide-homepage` =
frontendExecutable(jsProject(project.in(file("guide/homepage"))).dependsOn(`guide-commons`))(
Expand All @@ -460,7 +466,8 @@ lazy val `guide-packager` =
.settings(
noPublishSettings,
commonSettings,

crossScalaVersions := Seq(Dependencies.versionOfScala),

normalizedName := "udash-guide",
maintainer := "dawid.dworak@gmail.com",
Compile / mainClass := (`guide-backend` / Compile / mainClass).value,
Expand All @@ -485,6 +492,7 @@ lazy val `guide-selenium` =
.dependsOn(`guide-backend`)
.settings(
noPublishSettings,
crossScalaVersions := Seq(Dependencies.versionOfScala),

libraryDependencies ++= Dependencies.backendDeps.value,

Expand Down
Expand Up @@ -83,7 +83,9 @@ class RemoteTranslationProviderTest extends AsyncUdashFrontendTest with BeforeAn
t5 <- translator.translate("trMissing")
_ <- retrying(t5.string should be("ERROR"))
_ <- retrying(rpc.loadTemplateForLangCalls should be(1))
r <- retrying(rpc.loadTranslationsForLangCalls should be(1))
//error fallback in io.udash.i18n.RemoteTranslationProvider.translate can add one
_ <- retrying(rpc.loadTranslationsForLangCalls should be > 0)
r <- retrying(rpc.loadTranslationsForLangCalls should be < 3)
} yield r
}

Expand Down
2 changes: 1 addition & 1 deletion project/build.properties
@@ -1,2 +1,2 @@
# suppress inspection "UnusedProperty"
sbt.version=1.2.8
sbt.version=1.3.0
4 changes: 1 addition & 3 deletions project/plugins.sbt
Expand Up @@ -2,8 +2,6 @@ logLevel := Level.Warn

libraryDependencies += "org.scala-js" %% "scalajs-env-selenium" % "0.3.0"

addSbtCoursier

addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.28")
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.4.0")
addSbtPlugin("org.jetbrains" % "sbt-ide-settings" % "1.0.0")
Expand All @@ -12,4 +10,4 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.22")

// Deployment configuration
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "2.0.0-M2")
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.5")
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.4")
1 change: 0 additions & 1 deletion project/project/plugins.sbt

This file was deleted.

Binary file added travis/travis.gpg.enc
Binary file not shown.

0 comments on commit e893196

Please sign in to comment.