Run Aseprite as part of a Github Action

I’m wondering if anyone else has used Aseprite in a Github Action as part of a continuous integration step for building their game. It sure would be cool if I could get a full CI build of my game from scratch if someone touched a file.

I’m working with a non-technical partner (my son) who’d like to do the art for the game we’re making. I have this idea that he can change the art, push a button on his side that pulls the file from somewhere (Dropbox?) and checks it into the right place in the game repo. That sets off the Github Action which builds the game and updates it on itch.io and… voila!

In order to get that to work I think I need the aseprite CLI inside the Github Action runner. I could then run make on my game to generate the frames from the aseprite assets for sprite packing. I’ve got this working locally, but I also have a paid-for version of Aseprite installed (as does my son) and in my path. This thing would either download a pre-built aseprite binary, compile it in place, or run inside of a Docker container with aseprite in the path already.

I’ve thought about scripting this up locally, but it would be much handier if he could produce a new build by changing the art himself without me being involved.

Am I going to end up compiling aseprite into a Docker image to get this working? Anyone else have any ideas?

EDIT: Just found this thing that I think I could use! setup-aseprite-cli-action · Actions · GitHub Marketplace · GitHub

3 Likes

Glad you added that edit at the end. How did this process work out for you?

Well, my non-technical partner bailed on me to play more video games so we never got it up and running in its full glory. I still have that GitHub action in my back pocket in case I need it in the future, though.

The plan was to have him update an .ase file and have it export, build, and publish the game. If I were doing this today I’d make it so the .ase merge checks the generated image files back into the repo first, then calls the normal publish workflow.

But this is all theoretical.