This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-10-15
Channels
- # announcements (1)
- # babashka (81)
- # beginners (48)
- # calva (49)
- # clj-kondo (52)
- # cljdoc (7)
- # cljs-dev (39)
- # clojure (33)
- # clojure-australia (18)
- # clojure-europe (48)
- # clojure-italy (2)
- # clojure-morsels (2)
- # clojure-nl (3)
- # clojure-uk (6)
- # clojurescript (5)
- # community-development (2)
- # conjure (6)
- # cursive (3)
- # data-science (29)
- # datalog (4)
- # datomic (14)
- # events (1)
- # fulcro (1)
- # graphql (18)
- # gratitude (2)
- # helix (11)
- # introduce-yourself (2)
- # java (15)
- # keyboards (2)
- # lsp (6)
- # luminus (4)
- # membrane (32)
- # minecraft (1)
- # missionary (7)
- # nextjournal (2)
- # off-topic (28)
- # portal (28)
- # releases (1)
- # ring (1)
- # shadow-cljs (3)
- # sql (6)
- # xtdb (23)
I was expecting more problems because again we always load goog.module
in the new way and don't rely on global refs
hi, original Canary author here, it is prepared to support more “remote” test runners other than travis. It would require some work to write support for them. Travis support is implemented here[1], it shells out to raw curl to talk to their API. [1] https://github.com/cljs-oss/canary/blob/master/runner/src/canary/runner/travis.clj
I don’t have bandwidth to write it myself, but I could at least offer some help in guiding someone and review the code. I think adding support for Github Actions should be enough to get it running agian with current set of projects.
yes, I would prefer it. CircleCI is another option but I’m not familiar with them and they could stop/limit supporting free OSS plans like travis did.
another option is to run the tests in canary’s GH Action - currently canary itself runs as GH Action (it used to run on Travis)
original idea was to trigger test builds on projects “remotely” via API and wait for results, so that project maintainers maintain their test systems, but @U04VDQDDY ended up wrapping most projects in chkup and maintaining them himself
canary can run shell scripts instead of triggering builds via APIs, but then we would have to maintain the scripts running the tests for such projects
is it possible to run other repos tests? doesn't that require coordination of some kind?
people had to submit their travis tokens to canary, so that canary can trigger their builds remotely
https://github.com/cljs-oss/canary/tree/master#how-can-i-trigger-travis-build-of-my-project
and also people had to use CANARY_CLOJURESCRIPT_VERSION in their deps, to consume tested cljs compiler: https://github.com/binaryage/cljs-devtools/commit/45c1df1e0de53c9d320963b296bd7a741056599c
yes, if we wanted to trigger builds/tests on other people’s repos travis allowed storing encrypted tokens, so that wasn’t really big issue
not sure about GH Actions, but we could do it more dirty way and simply maintain the test scripts ourselves and run the tests inside canary’s GH Action
it is explained here: https://github.com/cljs-oss/canary/tree/master#can-you-give-me-more-details-on-how-can-i-can-participate-with-my-project
you can write a shell script, which can do whatever it wants to test particular project
@darwin isn't another option to just clone the project, use clj
to set the version and avoid all the token stuff?
ah, I see, you mean that we would create multiple GH workflow entries under the canary repo and trigger them from canary runner with a single token (our token)
that “shell script” option I was talking about is more direct, canary runner is running in GH workflow and it would run the tests directly in-process, by launching some shell scripts which would clone repos and run tests the way they are meant to be run from command-line
hrm, but there's a benefit w/ workflow per project since you get UI overview of the results
or maybe you mean to ditch canary altogether and just use github workflows to do multi-test
there would be just one special at the beginning which would compile the compiler for subsequent workflows to use it
I'm relatively familiar and this will be mostly copy-pasta - will try to find some time to think about it
FWIW, I test tagged releases of known projects that use rewrite-clj against rewrite-clj master. Currently all runs sequentially, but works for my purposes https://github.com/clj-commons/rewrite-clj/blob/main/script/test_libs.clj