Skip to content

scala pr validation publishes sbt, saves 50 min on retry#71

Closed
adriaanm wants to merge 1 commit intoscala-ide:masterfrom
adriaanm:patch-1
Closed

scala pr validation publishes sbt, saves 50 min on retry#71
adriaanm wants to merge 1 commit intoscala-ide:masterfrom
adriaanm:patch-1

Conversation

@adriaanm
Copy link
Contributor

Because of flakiness in the test suite, we often have to retry the job,
which takes 50 minutes more than it should (that's how long it takes
to build sbt, which never fails, and thus the retry could reuse earlier
published result).

Because of flakiness in the test suite, we often have to retry the job,
which takes 50 minutes more than it should (that's how long it takes
to build sbt, which never fails, and thus the retry could reuse earlier
published result).
@adriaanm
Copy link
Contributor Author

Review by @skyluc, please.

@ghprb-bot
Copy link

Refer to this link for build results (access rights to CI server needed):

https://jenkins.scala-ide.org:8496/jenkins/job/ghprb-uber-build-validator/108/
https://jenkins.scala-ide.org:8496/jenkins/job/ghprb-uber-build/111/
Test FAILed.

@adriaanm
Copy link
Contributor Author

PS: The publishing part will need to be reworked when we can't publish to private-repo anymore /cc @jsuereth. I would love for the sbt step to be factored out, while we're at it.

@lrytz
Copy link
Contributor

lrytz commented Apr 17, 2015

ping @skyluc

@adriaanm
Copy link
Contributor Author

/cc @mpociecha (in case this is relevant for you)

@mpociecha
Copy link

I don't think I have anything in common with:

Access denied to: https://proxy-ch.typesafe.com:8082/artifactory/repo/org/apache/felix/org.apache.felix.framework/4.4.0/org.apache.felix.framework-4.4.0.jar

and

[artifact:dependencies] Unable to resolve artifact: Missing: 1) org.apache.felix:org.apache.felix.framework:jar:4.4.0

Edit: Or didn't you mean failed build?

@adriaanm
Copy link
Contributor Author

I meant reviewing this PR, which turns on publishing for sbt for integration of the IDE during Scala PR validation. This would save us 50 min on the retry when tests are flaky. Based on your comment on S
scala/scala#4447 :-) sorry if I was jumping to conclusions ;)

@mpociecha
Copy link

Pardon me. I was only looking at tests which use Thread.sleep (yes, the ugly thing) - how to get rid of this/rewrite them to be resistant to slowdowns on Jenkins. Nothing more - especially related to the build configuration. That's why I misunderstood you.

Anyway it's great if it really ensures that we'll rerun tests without building everything once again! 👍

Maybe it's not the best place to discuss this, but by the way:
If you are so dependent on the Scala IDE integration build, maybe would it make sense to have some emergency type of a build on Scala's Jenkins? I mean that, in case of problems, problematic tests could be quickly ignored. In the meantime someone could create corrections (so e.g. to don't rely on some particular execution time), and run a build also on Scala's Jenkins for such a branch before merging it to Scala IDE's master. Taking into account the change introduced in this PR, it even would be possible to run tests more than once. Therefore, we wouldn't block PR validation by experimenting with corrections in IDE.

I'm not sure how often do you have such situations though. => Whether it makes sense to spend/waste some time preparing this. Obviously it's also a question how closely you and Scala IDE team cooperate.

@adriaanm
Copy link
Contributor Author

No worries at all, and thanks for the thorough explanation! I'm traveling this weekend through Monday, but maybe it makes sense to do a quick hangout next week to discuss? /cc @dragos

@dragos
Copy link
Member

dragos commented Apr 20, 2015

I'm happy to merge this, but does it work? I think we need to setup a publish URL as well. What repository should it use for publishing? the scala-prs one?

@dragos
Copy link
Member

dragos commented Apr 20, 2015

Regarding speed, where does PR validation run now? If it's no longer in Lausanne, where we had a proxy configured, a good way to speed up dbuild is to setup an artifactory close to where it runs. Out of those 50 min, actual compilation time is about 5, the rest is overhead :(

@adriaanm
Copy link
Contributor Author

Ah, I thought the publish URL was already set up for the other modes of operation. I'm not sure how it works behind the scenes. Validation runs in Lausanne, but maybe the slow down is because of an issue with the maven mirror on moxie?

@dragos
Copy link
Member

dragos commented Apr 21, 2015

I'll give it a try and see what happens. I'm not sure either.

@dragos
Copy link
Member

dragos commented Apr 21, 2015

After checking and also talking to @lrytz it seems the build is running on EC2. We can either:

  • make the IDE job run again on a1 in Lausanne
  • add an Artifactory proxy on EC2 to be close to where the job runs.

Unfortunately dbuild is really slow otherwise...

@adriaanm
Copy link
Contributor Author

Apologies for the confusion. I don't know why I thought the job was still running in Lausanne... I'll look into a minimal maven mirror hosted with the workers.

@adriaanm
Copy link
Contributor Author

(Tracked at: scala/scala-jenkins-infra#13)

@adriaanm
Copy link
Contributor Author

Subsumed by #73.

@adriaanm adriaanm closed this Apr 30, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants