website
website copied to clipboard
Add Continuous Integration (CI)
As a Developer, I would like for any code contributions to automatically be integrated when code is pushed or merged.
Acceptance Criteria
- Upon push or merge, code should be:
- [x] checked out
- [x] unit test run
- [x] test results reported (project badging should be added to the README; perhaps this can become another issue)
- [ ] If the unit tests pass (perhaps other kinds of testing may need to be added as we iterate on this process) then the CI software should generate deployable deliverables which Continuous Deployment (CD) would then take and deploy based either on rules or a button push.
- One or more CI tools need to be authorized on this repository and configured to perform the tasks listed in point 1 above.
The reason for having two tools is redundancy. Both CircleCI and Travis allow for Open Source software to be built on their platforms for free (as in beer).
Another cloud option for CI is Semaphore; I’m not sure if they have a free tier or will allow Open Source software to be built on their platform gratis.
Which one do you like? I only really have experience with Travis, so that would be my choice.
I think I like Semaphore the best, but I have limited experience with all of them.
I don't think it's going to matter when it comes to running unit tests or even Continuous Delivery when we get there. I think the tools start to distinguish themselves when you start doing more custom or complicated things.
So, whichever is the easiest and less hassle for you to get up and running.
If you want to avoid the overhead of configuring the tools other than getting them connected to the repositories, I think I will need admin access inside the tools until we get things configured the way we want them to be. I know most tools should be able to be configured with just the appropriate .yml files, secrets/environment variables aside.
I don't know they're all a hassle for me. I don't think I can give you admin access to my personal repos, so if you're able to commit a configuration for Semaphore, feel free and I'll enable access for it.
I meant inside CircleCI, Semaphore, Travis, etc., not on the repo itself.
Something about words getting in the way of what you're trying to say.
Either way, I think first step is you pick which tool you want to use and connect it to this/the master repo.
I could always commit a file that works on my fork, but you'll still have to connect this repo to whatever tool.
Per our call today, I will add both Semaphore and CircleCI to my fork and commit their config files. At that point, @codedmonkey should be able to add this repo to each of those services and then they should "just work". Should.