app cheapskate-ci

CLI for those who are too cheap to pay for CI but still want required GitHub status checks. Now they can run this locally.

9 releases

0.1.8 Aug 21, 2023
0.1.7 Feb 21, 2023
0.1.6 Aug 26, 2020
0.1.5 Dec 7, 2018
0.1.3 Jul 22, 2018

#21 in #ci

22 downloads per month

MIT license

205 lines


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):


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.

How to use cheapskate-ci as a required status to push to the default branch

  • 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.


~388K SLoC