From d0f8d5bbeda694fad7e943e7c84e4887e6be6483 Mon Sep 17 00:00:00 2001 From: Predrag Gruevski Date: Fri, 12 Aug 2022 12:26:01 -0400 Subject: [PATCH] Improve examples for the various modes of using the action. Resolves #4. --- README.md | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 50f386e..0187de6 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,40 @@ # cargo-semver-checks-action -A GitHub Action for running cargo-semver-checks +Lint your crate API changes for semver violations. By default, this action assumes that: - Your cargo workspace contains a single crate which contains a library target. - Your releases are tagged in git as `v{major}.{minor}.{patch}`, for example `v1.2.3`. Single-crate workspaces can use it as: -``` +```yaml - name: Check semver uses: obi1kenobi/cargo-semver-checks-action@v1 - name: Publish to crates.io run: # your `cargo publish` code here ``` -In a workspace with more than one crate: -- use the `crate-name` setting to specify which crate should be checked in a given run, and -- use the `version-tag-prefix` setting to override the default prefix `v` to match the way the releases of your crate are tagged. The version number `1.2.3` will be appended to this prefix. +## Use with a different version tag format -For example, this is publishing `my-crate` whose releases are tagged as `my-crate-v1.2.3`: +Change the `version-tag-prefix` setting to reflect the prefix used to create the version tag. The setting's default value `'v'` creates version tags like `v1.2.3`. + +For example, if your versions are tagged as `1.2.3`, you can set `version-tag-prefix` to be the empty string: +```yaml +- name: Check semver + uses: obi1kenobi/cargo-semver-checks-action@v1 + with: + version-tag-prefix: '' +- name: Publish my-crate to crates.io + run: # your `cargo publish` code here ``` + +## Use in workspaces with more than one crate + +You'll need to specify which crate should be checked, and the format used for version tags for that crate: +- `crate-name` specifies the crate to check, and +- `version-tag-prefix` sets the text prepended to the version number to create the git tag for that release. + +For example, this will check `my-crate` whose releases are tagged as `my-crate-v1.2.3`: +```yaml - name: Check semver uses: obi1kenobi/cargo-semver-checks-action@v1 with: @@ -28,8 +44,10 @@ For example, this is publishing `my-crate` whose releases are tagged as `my-crat run: # your `cargo publish` code here ``` +## Use with binary crates or crates with more than one target + To check a different (non-library) target in a crate, use the `crate-target` setting: -``` +```yaml - name: Check semver for my_binary uses: obi1kenobi/cargo-semver-checks-action@v1 with: