name: API 0.0.1 compatibility
on:
push:
branches: ["master"]
pull_request:
branches: ["master"]
workflow_dispatch:
permissions:
contents: read
env:
BASELINE_REF: "0.0.1"
jobs:
semver:
name: cargo-semver-checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
fetch-tags: true
- name: Locate API baseline
id: baseline
shell: bash
run: |
set -euo pipefail
if git rev-parse --quiet --verify "${BASELINE_REF}^{commit}" >/dev/null; then
echo "skip=false" >> "${GITHUB_OUTPUT}"
echo "rev=${BASELINE_REF}" >> "${GITHUB_OUTPUT}"
echo "Using API baseline ${BASELINE_REF}."
else
echo "skip=true" >> "${GITHUB_OUTPUT}"
echo "Baseline ${BASELINE_REF} does not exist yet; skipping API compatibility check."
fi
- name: Install Rust
if: steps.baseline.outputs.skip == 'false'
uses: dtolnay/rust-toolchain@stable
- name: Check public API compatibility
if: steps.baseline.outputs.skip == 'false'
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
baseline-rev: ${{ steps.baseline.outputs.rev }}