clojure-emacs / clomacs

Simplifies Emacs Lisp interaction with Clojure and vice versa.
200 stars 21 forks source link

Switch from Travis to CircleCI #16

Closed danielcompton closed 5 years ago

danielcompton commented 5 years ago

Follows the same pattern as https://github.com/clojure-emacs/clojure-mode/pull/514. Test results available at https://circleci.com/gh/danielcompton/workflows/clomacs/tree/use-circle-ci.

The integration test seems to be failing with

[nREPL] Starting server via /usr/bin/lein 
  update-in :dependencies conj \[nrepl\ \"0.6.0\"\] -- 
  update-in :plugins conj \[cider/cider-nrepl\ \"0.21.1\"\] -- 
  repl :headless :host localhost...

...

Test clomacs-integration-test condition:
    (user-error "`nil' requires the nREPL op \"classpath\" (provided by cider-nrepl)")

I'm not sure where exactly the issue lies here. The latest Travis build on master passes. Kicking off a fresh Travis build also seems to pass, using the same dependencies:

[nREPL] Starting server via /usr/local/bin/lein update-in 
  :dependencies conj \[nrepl\ \"0.6.0\"\] -- 
  update-in :plugins conj \[cider/cider-nrepl\ \"0.21.1\"\] -- 
  repl :headless :host localhost...
kostafey commented 5 years ago

Ok, I have nothing against CircleCI, but could you tell please, what's wrong with Travis?

danielcompton commented 5 years ago

@bbatsov: Not yet. This was discussed in passing a few times, but we never started any real work in that direction. Now that Travis is dying I guess we need to put some focus on this. - https://twitter.com/bbatsov/status/1098711723194925056

Travis CI recently fired a huge part of their staff, and it seems possible that they will shut down their free access for open source. It seems like it would be good to move now rather than be pushed, also Bozhidar has had issues with flaky CI tests on CIDER, not sure if it's such an issue here though.

kostafey commented 5 years ago

Thank you. Merged.

danielcompton commented 5 years ago

I tried setting Leiningen to 2.8.1 which matches the Travis version used, but the tests are still failing: https://circleci.com/gh/danielcompton/clomacs/21

kostafey commented 5 years ago

It's ok. The reason for this (https://circleci.com/gh/danielcompton/clomacs/21) test fail - is a difference between Emacs versions string evaluation ("(:a b 'c)" vs "(:a b (quote c))"). Other problem looks like related to my bad idea to sync evaluation of the very first clomacs-wrapped function call, which is aimed to start nREPL process. This is achieved by (sleep-for 0.1) in a loop. This freezes Emacs for some seconds. It's a subject of refactoring. I' going to remove such point of synchronization (first function call will not return the result but can contain nrepl-ready-callback).

All related experiments are in the test branch. One of it's builds is already successful: https://circleci.com/gh/clojure-emacs/clomacs/13?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link