#ci #github #check #status #local #run #pre-commit

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.

10 releases

new 0.1.9 Mar 12, 2025
0.1.8 Aug 21, 2023
0.1.7 Feb 21, 2023
0.1.6 Aug 26, 2020
0.1.3 Jul 22, 2018

#671 in Development tools

MIT license

16KB
205 lines

cheapskate-ci

Run your CI locally.

Installation

  • Run cargo install cheapskate-ci, or
  • Clone the repository and run cargo install --path .

Usage

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.

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.

Dependencies

~12–29MB
~375K SLoC