Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,30 @@

</div>

Prep is a cross-platform CLI tool that provides Rust workspace verification in single short command.
You can just invoke `prep ci` and if the checks succeed then you can rest easy knowing that your PR won't fail CI.

## Motivation

Rust projects tend to have a wide variety of fairly complicated verification steps in CI.
These steps help ensure that the project stays consistent and keeps working in various scenarios.

However, these CI steps are either written as GitHub Action YAML files or as Bash scripts.
Running GitHub Actions requires a rather heavyweight Docker image, which expects a Unix userland, just like Bash scripts.
Additionally, they target ephemeral VMs, so they do a lot of tooling setup that isn't efficient for a local machine.
All of that meaning that you're really out of luck on Windows and even on Unix it's going to be needlessly cumbersome.

So you need to analyze the specifics of a project's CI and craft custom local scripts to emulate the CI steps.
That, or you just manually invoke a few Cargo commands and hope for the best, leading to frequent CI failures on your PRs.
Which sucks because CI tends to run at a lot slower speed than your local machine, especially due to cold build cache.

## Prep to the rescue

Before opening a PR you can just run `prep ci` locally and verify that everything matches CI expectations.
Because Prep aims for a rather robust set of verifications this will be beneficial even when the project still uses custom CI scripts.
However, for best results the project itself should run `prep ci` in its CI instead of custom scripts.
That way the only problems that remain uncaught locally are platform specific, which the CI will catch with its multi-platform job matrix.

## Installation

```sh
Expand Down
24 changes: 24 additions & 0 deletions prep/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,30 @@

</div>

Prep is a cross-platform CLI tool that provides Rust workspace verification in single short command.
You can just invoke `prep ci` and if the checks succeed then you can rest easy knowing that your PR won't fail CI.

## Motivation

Rust projects tend to have a wide variety of fairly complicated verification steps in CI.
These steps help ensure that the project stays consistent and keeps working in various scenarios.

However, these CI steps are either written as GitHub Action YAML files or as Bash scripts.
Running GitHub Actions requires a rather heavyweight Docker image, which expects a Unix userland, just like Bash scripts.
Additionally, they target ephemeral VMs, so they do a lot of tooling setup that isn't efficient for a local machine.
All of that meaning that you're really out of luck on Windows and even on Unix it's going to be needlessly cumbersome.

So you need to analyze the specifics of a project's CI and craft custom local scripts to emulate the CI steps.
That, or you just manually invoke a few Cargo commands and hope for the best, leading to frequent CI failures on your PRs.
Which sucks because CI tends to run at a lot slower speed than your local machine, especially due to cold build cache.

## Prep to the rescue

Before opening a PR you can just run `prep ci` locally and verify that everything matches CI expectations.
Because Prep aims for a rather robust set of verifications this will be beneficial even when the project still uses custom CI scripts.
However, for best results the project itself should run `prep ci` in its CI instead of custom scripts.
That way the only problems that remain uncaught locally are platform specific, which the CI will catch with its multi-platform job matrix.

## Installation

```sh
Expand Down