archived-codacy / sbt-codacy-coverage

Sbt plugin for uploading Scala code coverage to Codacy https://www.codacy.com
18 stars 22 forks source link

codacyCoverage not working on Travis CI (commitUuid not found?) #38

Closed guilgaly closed 7 years ago

guilgaly commented 7 years ago

Cross-reference: I also asked a question on stackoverflow.


I have set up a Scala/SBT project with Travis CI and Codacy integration. The sources are visible at https://github.com/guilgaly/itunes-dap-sync.

I wanted to be able to view a code coverage report in Codacy, so I added the following SBT plugins:

addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.0")
addSbtPlugin("com.codacy" % "sbt-codacy-coverage" % "1.3.7")

And I was able to upload coverage data to Codacy with the following commands, on my computer:

export CODACY_PROJECT_TOKEN=<my token>
sbt clean coverage test
sbt coverageReport
sbt coverageAggregate
sbt codacyCoverage

To automatically upload coverage data from the Travis CI build, I set up the CODACY_PROJECT_TOKEN environment variable for the project, and used the following .travis.yml configuration:

language: scala
scala:
  - 2.12.1
jdk:
  - oraclejdk8
script:
  - sbt clean coverage test
after_success:
  - sbt coverageReport
  - sbt coverageAggregate
  - sbt codacyCoverage

But in the Travis CI build log, I see that codacyCoverage fails, with java.lang.RuntimeException: Failed to upload data. Reason: Request handler not found: /2.0/coverage//scala:

[info] Loading project definition from /home/travis/build/guilgaly/itunes-dap-sync/project
[info] Set current project to itunes-dap-sync (in build file:/home/travis/build/guilgaly/itunes-dap-sync/)
[info] Defining {.}/*:javaHome
[info] The new value will be used by *:compilers, *:console::compilers and 6 others.
[info]  Run `last` for details.
[info] Reapplying settings...
[info] Set current project to itunes-dap-sync (in build file:/home/travis/build/guilgaly/itunes-dap-sync/)
[info] Uploading coverage data...
java.lang.RuntimeException: Failed to upload data. Reason: Request handler not found: /2.0/coverage//scala
    at scala.sys.package$.error(package.scala:27)
    at com.codacy.CodacyCoveragePlugin$$anonfun$7.apply(CodacyCoveragePlugin.scala:79)
    at com.codacy.CodacyCoveragePlugin$$anonfun$7.apply(CodacyCoveragePlugin.scala:64)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1$$anonfun$apply$2.apply(FileHelper.scala:21)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1$$anonfun$apply$2.apply(FileHelper.scala:19)
    at scala.Option.map(Option.scala:145)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1.apply(FileHelper.scala:19)
    at com.codacy.api.helpers.FileHelper$$anonfun$withTokenAndCommit$1.apply(FileHelper.scala:18)
    at com.codacy.api.helpers.FileHelper$$anonfun$withCommit$2.apply(FileHelper.scala:34)
    at com.codacy.api.helpers.FileHelper$$anonfun$withCommit$2.apply(FileHelper.scala:33)
    at scala.Option.map(Option.scala:145)
    at com.codacy.api.helpers.FileHelper$.withCommit(FileHelper.scala:33)
    at com.codacy.api.helpers.FileHelper$.withTokenAndCommit(FileHelper.scala:18)
    at com.codacy.CodacyCoveragePlugin$.com$codacy$CodacyCoveragePlugin$$codacyCoverageCommand(CodacyCoveragePlugin.scala:64)
    at com.codacy.CodacyCoveragePlugin$AutoImport$$anonfun$baseSettings$2.apply(CodacyCoveragePlugin.scala:31)
    at com.codacy.CodacyCoveragePlugin$AutoImport$$anonfun$baseSettings$2.apply(CodacyCoveragePlugin.scala:30)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[error] (*:codacyCoverage) Failed to upload data. Reason: Request handler not found: /2.0/coverage//scala

It seems that the URL /2.0/coverage//scala is missing the commitUuid part. However, judging from the sbt-codacy-coverage code, Travis' TRAVIS_COMMIT env variable should be picked up for that. I added echo "TRAVIS_COMMIT $TRAVIS_COMMIT" to my after_success script, and it does print the commit's hash.

Any idea what might cause this issue?

pedrorijo91 commented 7 years ago

@mrfyda can you have a look at this please?

pedrorijo91 commented 7 years ago

Travis logs visible at https://travis-ci.org/guilgaly/itunes-dap-sync

rtfpessoa commented 7 years ago

Sorry for the delay in the answer. This kind of got lost in the backlog. We are looking at this now and should have an answer soon.

For future bugs I recommend you to drop up an email at support at codacy dot com or use the in app support.

rtfpessoa commented 7 years ago

We just released version 1.3.8 it should propagate to the servers soon.

If you want you can add the repo by hand to test faster: https://oss.sonatype.org/content/repositories/releases

Let us know if you still experience the issues after the update so we can re-open.

guilgaly commented 7 years ago

I just updated to version 1.3.8, and it does seem to work fine. Thanks!