Remove unused options

This commit is contained in:
Mieszko Grodzicki 2023-01-03 20:17:02 +01:00 committed by Predrag Gruevski
parent 1b587be276
commit bb926a3536
3 changed files with 11 additions and 77 deletions

View file

@ -1,14 +1,9 @@
# cargo-semver-checks-action # cargo-semver-checks-action
Lint your crate API changes for semver violations. 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 ```yaml
- name: Check semver - name: Check semver
uses: obi1kenobi/cargo-semver-checks-action@v1 uses: obi1kenobi/cargo-semver-checks-action@v2
- name: Publish to crates.io - name: Publish to crates.io
run: # your `cargo publish` code here run: # your `cargo publish` code here
``` ```
@ -19,33 +14,15 @@ Every argument is optional.
| Input | Description | Default | | Input | Description | Default |
|--------------------|-----------------------------------------------------------------------------------------------------------------------------------|---------| |--------------------|-----------------------------------------------------------------------------------------------------------------------------------|---------|
| crate-name | The crate whose API to check for semver (needed only in multi-crate workspaces). | | | crate-name | The crate whose API to check for semver. If not set, all crates in the workspace are processed. | |
| crate-target | (Deprecated) By default, check the library target of the crate. To check a different target (e.g. a binary target), set this to `--bin <NAME>`. Will be removed in future versions, as bin targets do not have library-like API to check. | `--lib` |
| version-tag-prefix | The prefix to use for the git tag for a version; the default "v" creates tags like "v1.0.0". | `v` |
# Scenarios # Scenarios
- [Use with a different version tag format](#use-with-a-different-version-tag-format)
- [Use in workspaces with more than one crate](#use-in-workspaces-with-more-than-one-crate) - [Use in workspaces with more than one crate](#use-in-workspaces-with-more-than-one-crate)
- [(Deprecated) Use with binary crates or crates with more than one target](#deprecated-use-with-binary-crates-or-crates-with-more-than-one-target)
## Use with a different version tag format
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 ## 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: By default, if workspace contains multiple crates, all of them are checked against semver violations. You can specify single crate to be checked instead, along with the format used for version tags for that crate:
- `crate-name` specifies the crate to check, and - `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. - `version-tag-prefix` sets the text prepended to the version number to create the git tag for that release.
@ -59,15 +36,3 @@ For example, this will check `my-crate` whose releases are tagged as `my-crate-v
- name: Publish my-crate to crates.io - name: Publish my-crate to crates.io
run: # your `cargo publish` code here run: # your `cargo publish` code here
``` ```
## (Deprecated) 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:
crate-target: --bin my_binary
- name: Publish my-crate to crates.io
run: # your `cargo publish` code here
```

View file

@ -5,17 +5,9 @@ branding:
color: 'green' color: 'green'
inputs: inputs:
crate-name: crate-name:
description: 'The crate whose API to check for semver' description: 'The crate whose API to check for semver. If not set, all crates in the workspace are processed.'
required: false required: false
default: '' default: ''
crate-target:
description: 'By default, check the library target of the crate. To check a different target (e.g. a binary target), set this to `--bin <NAME>`'
required: false
default: '--lib'
version-tag-prefix:
description: 'The prefix to use for the git tag for a version; the default "v" creates tags like "v1.0.0"'
required: false
default: 'v'
runs: runs:
using: "composite" using: "composite"
steps: steps:
@ -24,7 +16,7 @@ runs:
with: with:
toolchain: stable toolchain: stable
profile: minimal profile: minimal
- name: Build rustdoc and check it - name: Check for semver violations
shell: bash shell: bash
run: | run: |
set -euxo pipefail set -euxo pipefail
@ -32,14 +24,14 @@ runs:
# Colorize output, since GitHub Actions terminals support color. # Colorize output, since GitHub Actions terminals support color.
export CARGO_TERM_COLOR=always export CARGO_TERM_COLOR=always
export PACKAGE_NAME="${{ inputs.crate-name }}" # If crate to check is specified, pass it to cargo-semver-checks,
if [[ "$PACKAGE_NAME" == '' ]]; then # otherwise use `--workspace` option.
export PACKAGE_NAME="$("$GITHUB_ACTION_PATH/find_workspace_crates.sh")" if [[ "${{ inputs.crate-name }}" == '' ]]; then
export PACKAGE_OPTION="--workspace"
else else
# cargo rustdoc uses the exact package name, not the "underscores" version. export PACKAGE_OPTION="--package ${{ inputs.crate-name }}"
export RUSTDOC_EARLY_FLAGS="--package $PACKAGE_NAME $RUSTDOC_EARLY_FLAGS"
fi fi
# Check for semver violations. # Check for semver violations.
cargo install cargo-semver-checks --locked cargo install cargo-semver-checks --locked
cargo semver-checks check-release --package "$PACKAGE_NAME" cargo semver-checks check-release $PACKAGE_OPTION

View file

@ -1,23 +0,0 @@
#!/usr/bin/env bash
# Script requirements:
# - jq
# Fail on first error, on undefined variables, and on failures in pipelines.
set -euo pipefail
# Go to the repo root directory.
cd "$(git rev-parse --show-toplevel)"
crates="$(cargo metadata --format-version 1 | \
jq --exit-status -r \
'.workspace_members[] as $key | .packages[] | select(.id == $key) | .name')"
crate_count="$(echo -e "${crates}" | wc -l)"
if [[ "$crate_count" == "1" ]]; then
echo -e "${crates}"
exit 0
else
echo >&2 "Multiple crates in workspace, please specify a crate in the 'crate-name' setting."
exit 1
fi