So, I finally finished the first few objects/functionality needed to have an
actual functioning CI server.
It receives a payload on a pull request, clones down the repo, runs the test
suite, sees if it passes or fails, and then sends that response back to Github
to update the PR status.
So since this is all a learning process for me, I had no idea what happened
next. I reconnected with that friend who got me started, and said, ok, where do
I go from here. I'm ready to build out delayed jobs, deployment, etc. etc.
Once again - was told to chill, hang on, and slow down.
"This was all a spike - we wanted to demystify what your core functionality was
going to be, and make sure you understood it inside and out."
"Now we're going to start over, and do it right."
So I started again. Now my goal is to have an actual functioning application
that could theoretically be used by a user.
I started by copying TravisCI's homepage - (as practice, will change it later) -
and implementing OmniAuth for github.
Once that was done - I have a user model now that I can store information needed
to make the appropriate Github requests.
Eventually, I'll pull down the list of repos on authorization, display that on
some sort of #show page, and allow the user to create a WebHook via opt-in.
I think the biggest thing I've learned so far is that it's important to take
every piece of your development in small incremental steps.
I thought I knew exactly what this application should look like, but I was
I now know exactly where I want to go with (the first part of) this.
As was said to me when I first started: "The software writing fairy isn't gonna
come down and bop you on the head and give you knowledge."
Practice makes perfect.
Let me know if you find this interesting!