From 0f676cb6f1455db0bac15bdcf0e66f22b5213bae Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Tue, 24 Apr 2018 22:58:54 +0900 Subject: [PATCH] use travis for mima and whitesource, remain no jenkins for tests (in parallel) (#24968) * travis config from akka-http * amend CONTRIBUTING to explain our tests * amend wording in CONTRIBUTING * new whitesource key * remove instead of comment deployment things * Update CONTRIBUTING.md * exclude new module in 2.5 from appearing in 2.4 previous mima artifacts * fix mima on 2.12 --- .travis.yml | 37 +++++++++++++++++++ CONTRIBUTING.md | 11 ++++-- .../mima-filters/2.4.16.backwards.excludes | 2 + .../mima-filters/2.5.3.backwards.excludes | 1 + .../mima-filters/2.5.4.backwards.excludes | 5 ++- project/MiMa.scala | 6 ++- 6 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 .travis.yml create mode 100644 akka-testkit/src/main/mima-filters/2.4.16.backwards.excludes create mode 100644 akka-testkit/src/main/mima-filters/2.5.3.backwards.excludes diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..fa2e052f77 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,37 @@ +language: scala + +sudo: false + +scala: + - "2.12.4" + - "2.11.12" + +jdk: + - oraclejdk8 + +addons: + apt: + packages: + - graphviz + +before_cache: + - find $HOME/.ivy2 -name "ivydata-*.properties" -print -delete + - find $HOME/.sbt -name "*.lock" -print -delete + +cache: + directories: + - $HOME/.ivy2/cache + - $HOME/.sbt/boot + +script: + # need to override as the default is to test + - sbt -J-XX:ReservedCodeCacheSize=256m ++$TRAVIS_SCALA_VERSION update mimaReportBinaryIssues + # make 'git branch' work again + - git branch -f "$TRAVIS_BRANCH" && git checkout "$TRAVIS_BRANCH" + # check policies, if on master also upload + - if [[ "$TRAVIS_SECURE_ENV_VARS" == "true" ]]; then if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_EVENT_TYPE" == "push" ]]; then sbt 'set credentials += Credentials("whitesource", "whitesourcesoftware.com", "", System.getenv("WHITESOURCE_KEY"))' whitesourceCheckPolicies whitesourceUpdate; else sbt 'set credentials += Credentials("whitesource", "whitesourcesoftware.com", "", System.getenv("WHITESOURCE_KEY"))' whitesourceCheckPolicies; fi ; fi + +env: + global: + # encrypt with: travis encrypt WHITESOURCE_KEY=... + - secure: "L/wJ7TbgY+oPULgbv+giFZejnQERfv/8/9Ex/nwRni8qnpxw5Q6BqB86Sch6b79irQiOdb+hr2tq3/m3KzXjC58xppRPfnmXsu3yI9XAln9WPi/sPvqUL8WPJmRfGswAw3L8w2JdD9VBP4iv0dWpRghGD27iqgipVRdN62PU+nU=" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 366e42724c..cca85e2228 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -386,13 +386,16 @@ tested it becomes an officially supported Akka feature. ## Continuous integration -Each project should be configured to use a continuous integration (CI) tool (i.e. a build server à la Jenkins). +Akka currently uses a combination of Jenkins and Travis for Continuous Integration: + +* Jenkins [runs the tests for each PR](https://jenkins.akka.io:8498/job/pr-validator-per-commit-jenkins/) +* Jenkins [runs a nightly test suite](https://jenkins.akka.io:8498/view/Nightly%20Jobs/job/akka-nightly/) +* Travis [checks dependency licenses for all PR's](https://travis-ci.org/akka/akka) + +The [Jenkins server farm](https://jenkins.akka.io/), sometimes referred to as "the Lausanne cluster", is sponsored by Lightbend. -Lightbend is sponsoring a [Jenkins server farm](https://jenkins.akka.io/), sometimes referred to as "the Lausanne cluster". The cluster is made out of real bare-metal boxes, and maintained by the Akka team (and other very helpful people at Lightbend). -In addition to PR validation the cluster is also used for nightly and performance test runs. - ## Related links * [Akka Contributor License Agreement](http://www.lightbend.com/contribute/cla) diff --git a/akka-testkit/src/main/mima-filters/2.4.16.backwards.excludes b/akka-testkit/src/main/mima-filters/2.4.16.backwards.excludes new file mode 100644 index 0000000000..4a8839592a --- /dev/null +++ b/akka-testkit/src/main/mima-filters/2.4.16.backwards.excludes @@ -0,0 +1,2 @@ +# incompatibility on Scala 2.12 +ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.testkit.TestKitBase.awaitAssert") diff --git a/akka-testkit/src/main/mima-filters/2.5.3.backwards.excludes b/akka-testkit/src/main/mima-filters/2.5.3.backwards.excludes new file mode 100644 index 0000000000..6d20a1da97 --- /dev/null +++ b/akka-testkit/src/main/mima-filters/2.5.3.backwards.excludes @@ -0,0 +1 @@ +ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.testkit.TestKitBase.awaitAssert") diff --git a/akka-testkit/src/main/mima-filters/2.5.4.backwards.excludes b/akka-testkit/src/main/mima-filters/2.5.4.backwards.excludes index 7085a40a70..0d56a8e72f 100644 --- a/akka-testkit/src/main/mima-filters/2.5.4.backwards.excludes +++ b/akka-testkit/src/main/mima-filters/2.5.4.backwards.excludes @@ -1,3 +1,6 @@ # #23224 TestKit expectNoMsg fix ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.testkit.TestKitBase.expectNoMessage") -ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.testkit.TestKitBase.expectNoMessage$default$1") \ No newline at end of file +ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.testkit.TestKitBase.expectNoMessage$default$1") + +# incompatibility on Scala 2.12 +ProblemFilters.exclude[IncompatibleResultTypeProblem]("akka.testkit.TestKitBase.awaitAssert") diff --git a/project/MiMa.scala b/project/MiMa.scala index 77150482d5..d9de8d860e 100644 --- a/project/MiMa.scala +++ b/project/MiMa.scala @@ -45,7 +45,11 @@ object MiMa extends AutoPlugin { } ++ akka24StreamVersions ++ akka24WithScala212 ++ akka25Versions case "2.12" ⇒ - akka24WithScala212 ++ akka25Versions + if (akka250NewArtifacts.contains(projectName)) + akka25Versions + else + akka24WithScala212 ++ akka25Versions + case v if v.startsWith("2.13") => // no Akka released for 2.13 yet, no jars to check BC against