joy
joy copied to clipboard
Automation and Code Quality Gates
What I'm Proposing
I'd like to see this project build and publish docker containers, as well as run tests and code quality checks on each commit. I'm open to the idea I just really enjoy tooling and making stuff automated, and it's not needed in this project.
I was thinking we could use CircleCI or Travis, both have permanent free tiers for open source projects. Ideally the job flow would look like this:
Each PR Job
- Run the test suite
- Enforce coverage
- Check if docker container can build
Each Master Job
- All steps from PR
- Build and publish a new docker container to docker hub
- Create a tag and release for Joy, push back to repo
- Run an integration test suite (this is a new feature we'd have to discuss)
Who will do it?
I'm very happy to do this work, explain and document the release process, and steps in the CI config. I'm also going need you to create some accounts that the joy-org "owns", namely:
- CircleCI/Travis Account
- Docker Hub Account
- Github Token
These can be safely obfuscated by you, and I can show you how to embed these values in either platform. If this seems like something you'd like, let me know and I'll get it knocked out for you!
Final Thoughts
If you like this we can talk about automated release management, and more. I think it's a good idea to try out the simple case first, see if there is any value for the project, and extend it at a future date.
If merged the MR would be two files:
- Config for CircleCI/Travis
- CONTRIBUTING.md with info and guides
Yeah that sounds great! The more places people can find the project the better, I say.
I was going to slap a heroku button on the README but this is much more thorough haha
I’m going to add you as a member
there’s only one rule: don’t delete the repo haha
that feels like a reasonable ask, i'll take a stab at this
I'm looking at this issue again, thanks so much for doing all of this heavy lifting, I really appreciate it. It's made this project so much better with the automatic testing and everything!
I've been trying to figure out how you get published on jpm? Is there some docs or something else on that? I'd like to automate releasing this to that next but I'm lost here.
@swlkr
jpm is a repo last time I checked
https://github.com/janet-lang/pkgs/blob/master/pkgs.janet
but I don’t think it requires updating, it just pulls the latest master when you run
jpm install joy