Run your CI locally.
- Run
cargo install cheapskate-ci
, or - Clone the repository and run
cargo install --path .
Create a cheapskate-ci.toml
in the root of your project.
See cheapskate-ci.toml for an example.
Example pre-commit hook (to make sure all commits are passing):
#!/bin/sh
cheapskate-ci run
There's no post-push hook, unfortunately, so after pushing you'll want to manually run:
cheapskate-ci run --status
Which will again run the steps, and then send a successful commit status to GitHub.
Note: the first time you run this, it will prompt you for a GitHub token.
You'll need to generate one with the repo:status
scope and paste it in.
That token will be cached in ~/.local/share/cheapskate-ci/psst.toml
going forward.
- check out a feature branch
- push up some code
- run
cheapskate-ci run --status
- check out your default branch
- merge in that branch:
git merge --ff-only -
- push to your default branch (this will be allowed as long as the CI run succeeded)
If you use a pull request flow, you can do the same thing, but just open and merge the PR instead of merging locally.