if any of you feel like hacking on this let’s make it happen 😄
👋
@borkdude I was already thinking of you because obviously it would be amazing to make autochrome fast via graal
one thing I’m not 100% clear on that might be a little annoying is whether you can view build artifacts in the browser easily or if they will always be downloaded
@martinklepsch have you tried using it as a vanilla tool before integrating it into something else first?
@borkdude i’ve used it before yeah
visually it’s a little odd to me but it is pretty good at the diffing stuff
This is an example of invoking clj-kondo on a codebase using Github actions: https://github.com/DeLaGuardo/clojure-lint-action Maybe without much change it can be tweaked into an autochrome plugin?
the graal stuff isn’t super necessary for a V1 so don’t worry about it too much i guess
The graalification can always happen later, I was just going to say that
yeah
that image might be useful indeed, thank you!
*action
i’m above the pacific right now btw ✈️
internet is slow 😄
perfect thing to hack on during travel 😉
err damn, it’s the atlantic lol
i’m so dumb haha
lets see what this airplane wifi thinks about me downloading docker images
👋
I’m pretty excited and I have a 5 hour flight left so I’ll try to work on this but I doubt that I’ll be able to do the Docker stuff just because of bad wifi. If anyone feels like hacking on this – go for it!
I think it shouldn’t be too hard
https://github.com/martinklepsch/autochrome-action/tree/autochrome-action
What we’ll need is basically a Docker thing that we can pass two SHAs and a directory, i.e. the args to autochrome itself: https://github.com/ladderlife/autochrome
what happens if you just push the experiment to github - I guess it downloads the stuff over there and you can just watch it fail?
nextcloud could also be an option for flaky internets experimentation. I just tweeted how well suited that is for just normal CI builds
yeah maybe that’d work
I guess a part of be is trying to involve others
or… ehhh… delegate? 😂
@delaguardo is kind of a guru when it comes to Github actions
yeah, but the part I’m trying to avoid right now doesn’t have much to do with gh actions, it’s more about packaging autochrome as a docker thing so that we get some diff.html
that we can store as a workflow artifact
why not just use the github actions clojure installer and run it with a jvm? no need to make a separate docker image for it I guess?
unless I'm missing something
could be that simple yeah, just getting it to actually might be a little tricky for me right now. not saying it’s hard in general 😄
but damn, it seems like GH workflow artifacts are always uploaded as zip files
that’s annoying
I guess it means there’d need to be something else that makes the file available via a single click
I'm also spitting out diffs to detect clj-kondo regressions: https://github.com/borkdude/clj-kondo/runs/450839500 I'm not saving those as artifacts though. I'm just going to that step to view the output..
so what you're researching right now, might come in handy for that too
the clojure-lint plugin seems to do all kinds of Github API requests using JS to get this done maybe?
the artifact stuff is super easy
iff it’s ok to only access it via a zip file
is it possible to unzip that file in JS and then render that? :thinking_face:
Probably they won’t serve the HTML as HTML anyways 😞
maybe it can work as comments? like this thing? https://github.com/David-Byrne/jekyll-diff-action
I’m now writing a complementary service that hosts your autochrome diff files. For OSS projects that should be fine but not sure how to solve this for private repos but I guess that’s someone else’s problem then
Some options I could think of: • security through obscurity (random paths) • encrypt diff at storage, provide key with get req
s3 can serve html files right? if it's just an open source project and the diffs are public anyways, I guess these html files could also be public, non-obscured
for private projects, maybe someone can configure his/her own server where it will be uploaded. or they can pay you 😉
yeah, might whip something up with firebase
should be pretty straightforward
I partly want this for myself at work btw 😄