Files
msrv/action.yml
2024-05-26 01:23:47 +01:00

31 lines
894 B
YAML

name: Determine minimum supported Rust version (MSRV) for workspace
description: |
Determine minimum supported Rust version (MSRV) for workspace for use in a job matrix.
inputs:
manifest-path:
description: Path to Cargo.toml manifest for workspace
required: false
runs:
using: composite
steps:
- name: Read MSRV from workspace manifest
id: read_msrv
shell: bash
run: |
cargo metadata --format-version=1 --manifest-path=${{ inputs.manifest-path || 'Cargo.toml' }} \
| jq -r 'first(.packages[] | select(.source == null and .rust_version)) | .rust_version' \
| sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/' \
| xargs -0 printf "msrv=%s" \
| tee /dev/stderr \
>> "$GITHUB_OUTPUT"
outputs:
msrv:
description: |-
Minimum supported Rust version. E.g.: 1.72.1"
value: ${{ steps.read_msrv.outputs.msrv }}