From 909bee2c5276169681ea7bd70e0c0c0fdb017a44 Mon Sep 17 00:00:00 2001 From: Mieszko Grodzicki Date: Sun, 26 Feb 2023 15:33:09 +0100 Subject: [PATCH] Work on README --- README.md | 45 +++++++++++++++++++++++++++++++++++++-------- action.yml | 10 +++++----- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 4cd1ea7..10a608c 100644 --- a/README.md +++ b/README.md @@ -14,25 +14,54 @@ Every argument is optional. | Input | Description | Default | |--------------------|-----------------------------------------------------------------------------------------------------------------------------------|---------| -| github-token | The `GITHUB_TOKEN` secret, which is necessary to download precompiled binaries from GitHub API. By default, the [automatic GitHub token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication) provided to the workflow will be used. The token may be alternatively passed in an environment variable `GITHUB_TOKEN`. | | -| package | The package whose API to check for semver (in Package Id Specification format, see https://doc.rust-lang.org/cargo/reference/pkgid-spec.html for reference). If not set, all packages in the workspace are processed. | | -| manifest-path | Path to Cargo.toml of crate or workspace to check. Has an effect only if `package` is not specified. | | -| verbose | Enables verbose output of `cargo-semver-checks`. | `false` | +| `package` | The package whose API to check for semver (in Package Id Specification format, see https://doc.rust-lang.org/cargo/reference/pkgid-spec.html for reference). If not set, all packages in the workspace are processed. | | +| `manifest-path` | Path to Cargo.toml of crate or workspace to check. | | +| `verbose` | Enables verbose output of `cargo-semver-checks`. | `false` | +| `github-token` | The `GITHUB_TOKEN` secret used to download precompiled binaries from GitHub API. If not specified, the [automatic GitHub token](https://docs.github.com/en/actions/security-guides/automatic-token-authentication) provided to the workflow will be used. The token may be alternatively passed in an environment variable `GITHUB_TOKEN`. | | -# Scenarios +# Use in workspaces with a single crate -- [Use in workspaces with more than one crate](#use-in-workspaces-with-more-than-one-crate) +The action will work out-of-the-box if it is run inside the package root directory. When the package location is different, you have to specify the path to its `Cargo.toml` file: +```yaml +- name: Check semver for my-crate + uses: obi1kenobi/cargo-semver-checks-action@v2 + with: + manifest-path: semver/my-crate/Cargo.toml # or just semver/my-crate/ +- name: Publish my-crate to crates.io + run: # your `cargo publish` code here +``` -## Use in workspaces with more than one crate +# Use in workspaces with more than one crate By default, if workspace contains multiple crates, all of them are checked for semver violations. You can specify a single crate to be checked instead using `package` or `manifest-path`. For example, this will check `my-crate`: ```yaml -- name: Check semver +- name: Check semver for my-crate from the current workspace uses: obi1kenobi/cargo-semver-checks-action@v2 with: package: my-crate - name: Publish my-crate to crates.io run: # your `cargo publish` code here ``` + +If the action is not run inside the workspace root directory, you again have to specify the path to its `Cargo.toml` file: +```yaml +- name: Check semver for all crates from my-workspace + uses: obi1kenobi/cargo-semver-checks-action@v2 + with: + manifest-path: semver/my-workspace/Cargo.toml # or just semver/my-workspace/ +- name: Publish my-workspace to crates.io + run: # your `cargo publish` code here +``` + +The two above might be also used together: +```yaml +- name: Check semver for my-crate from my-workspace + uses: obi1kenobi/cargo-semver-checks-action@v2 + with: + manifest-path: semver/my-workspace/Cargo.toml # or just semver/my-workspace/ + package: my-crate +- name: Publish my-crate to crates.io + run: # your `cargo publish` code here +``` diff --git a/action.yml b/action.yml index 9c8da45..f1bf355 100644 --- a/action.yml +++ b/action.yml @@ -4,16 +4,12 @@ branding: icon: 'check-circle' color: 'green' inputs: - github-token: - description: 'The GITHUB_TOKEN secret, which is necessary to download precompiled binaries from GitHub API. By default, the automatic GitHub token provided to the workflow will be used.' - required: false - default: ${{ github.token }} package: description: 'The package whose API to check for semver (in Package Id Specification format, see https://doc.rust-lang.org/cargo/reference/pkgid-spec.html for reference). If not set, all packages in the workspace are processed.' required: false default: '' manifest-path: - description: 'Path to Cargo.toml of crate or workspace to check. Has an effect only if package is not specified.' + description: 'Path to Cargo.toml of crate or workspace to check.' required: false default: '' verbose: @@ -21,6 +17,10 @@ inputs: type: boolean required: true default: false + github-token: + description: 'The `GITHUB_TOKEN` secret used to download precompiled binaries from GitHub API. If not specified, the automatic GitHub token provided to the workflow will be used.' + required: false + default: ${{ github.token }} runs: using: 'node16' main: 'dist/index.js'