Inspiration
I was inspired to do this due to self hosting a git server and wanting to have automation capabilities there.
What it does
Romance is an automation server that runs docker containers with some specified parameters provided through a .romance_jobs.yaml file.
How we built it
Romance was built in rust with 3 modules: env, setup and jobs. The env module is a module that exists to have constants for use elsewhere to avoid potential inconsistency. setup is used to do various busy work that needs to be done for the jobs to be setup and run successfully. Finally jobs is the heart of the project where job structs are defined and are able to be run 1 job step at a time with each job step being a docker child process
Challenges we ran into
The most notable challenge for implementing this was figuring out how the status page was going to be able to get status.json due to CORS and how nginx handles soft links. Ultimately this was solved by putting the frontend files where romance was putting all the information.
Accomplishments that we're proud of
I'm proud I finished this in a timely manner and managed to go beyond and add a web front for it.
What we learned
That trying to get a fully featured and well-designed API built out generally isn't worth it due to projects not being completed due to that.
What's next for Romance
Fixing various issues with jobs to allow multiple to be viewed at a time as well as multiple being run at a time, currently the frontend only displays 1 job with all of it's steps, and fixing various stuff I have marked as TODO in the source code
Log in or sign up for Devpost to join the conversation.