autochrome-github 2020-02-17

@martinklepsch has joined the channel

@robert-stuttaford has joined the channel

@borkdude has joined the channel

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

@joelkuiper has joined the channel

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

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

@roman01la has joined the channel

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

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 has joined the channel

@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? 🤔

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 😄