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

Built With

Share this project:

Updates