mirror of
https://github.com/freemkv/freemkv-keysources.git
synced 2026-10-07 18:13:11 +00:00
docs/ci: drop stale local-precommit/release.sh references — CI is the only gate
This commit is contained in:
@@ -20,7 +20,7 @@ concurrency:
|
|||||||
# The committed Cargo.toml resolves libfreemkv from a git TAG (it is off
|
# The committed Cargo.toml resolves libfreemkv from a git TAG (it is off
|
||||||
# crates.io). That means CI was building this branch against the LAST RELEASE
|
# crates.io). That means CI was building this branch against the LAST RELEASE
|
||||||
# of libfreemkv, never against libfreemkv's dev tip — so a coordinated change
|
# of libfreemkv, never against libfreemkv's dev tip — so a coordinated change
|
||||||
# across the two repos could not be verified until release.sh cut the tags.
|
# across the two repos could not be verified until release-orchestrate.yml cut the tags.
|
||||||
# Green here meant "compiles against last month's library".
|
# Green here meant "compiles against last month's library".
|
||||||
#
|
#
|
||||||
# The fix mirrors the developer's local layout via the shared composite
|
# The fix mirrors the developer's local layout via the shared composite
|
||||||
@@ -42,7 +42,7 @@ concurrency:
|
|||||||
# the `deny` job audits the resolved graph, but CI's sibling path-patch layout
|
# the `deny` job audits the resolved graph, but CI's sibling path-patch layout
|
||||||
# resolves the freemkv crates as path packages, which `--locked` can't satisfy —
|
# resolves the freemkv crates as path packages, which `--locked` can't satisfy —
|
||||||
# the same reason the binary crates omit it. The lock that has to hold is the one
|
# the same reason the binary crates omit it. The lock that has to hold is the one
|
||||||
# release.sh regenerates in each consuming binary.
|
# release-orchestrate.yml regenerates in each consuming binary.
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Single source of truth for the MSRV — read rust-version from Cargo.toml once
|
# Single source of truth for the MSRV — read rust-version from Cargo.toml once
|
||||||
@@ -170,9 +170,8 @@ jobs:
|
|||||||
# to agree is what a release candidate is for.
|
# to agree is what a release candidate is for.
|
||||||
#
|
#
|
||||||
# `if` SKIPS the job (it does not queue). A queued job would be far worse
|
# `if` SKIPS the job (it does not queue). A queued job would be far worse
|
||||||
# than a slow one: release.sh's CI gate refuses while any run for the
|
# than a slow one: a never-scheduled job leaves the run pending forever, so
|
||||||
# commit is still in progress, so a never-scheduled job blocks releases
|
# the branch's required checks never report complete.
|
||||||
# silently -- see the note on real-media in qa.yml.
|
|
||||||
needs: resolve-msrv
|
needs: resolve-msrv
|
||||||
if: github.ref_name == 'qa' || github.ref_name == 'main'
|
if: github.ref_name == 'qa' || github.ref_name == 'main'
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
@@ -239,9 +238,8 @@ jobs:
|
|||||||
# to agree is what a release candidate is for.
|
# to agree is what a release candidate is for.
|
||||||
#
|
#
|
||||||
# `if` SKIPS the job (it does not queue). A queued job would be far worse
|
# `if` SKIPS the job (it does not queue). A queued job would be far worse
|
||||||
# than a slow one: release.sh's CI gate refuses while any run for the
|
# than a slow one: a never-scheduled job leaves the run pending forever, so
|
||||||
# commit is still in progress, so a never-scheduled job blocks releases
|
# the branch's required checks never report complete.
|
||||||
# silently -- see the note on real-media in qa.yml.
|
|
||||||
needs: resolve-msrv
|
needs: resolve-msrv
|
||||||
if: github.ref_name == 'qa' || github.ref_name == 'main'
|
if: github.ref_name == 'qa' || github.ref_name == 'main'
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
|||||||
@@ -16,9 +16,8 @@ name: qa
|
|||||||
# The shared checkout-siblings composite resolves qa->qa from the caller branch.
|
# The shared checkout-siblings composite resolves qa->qa from the caller branch.
|
||||||
#
|
#
|
||||||
# What this gate CANNOT cover: `disc://` and real `iso://` need physical media,
|
# What this gate CANNOT cover: `disc://` and real `iso://` need physical media,
|
||||||
# and no hosted runner has an optical drive or the image hoard. Those run on a
|
# and no hosted runner has an optical drive or the image hoard. That coverage
|
||||||
# self-hosted runner (see the media job at the end) and are the one leg that
|
# lives in freemkv's qa.yml (the real-media EC2 matrix), not in this file.
|
||||||
# stays on hardware.
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [qa]
|
branches: [qa]
|
||||||
|
|||||||
@@ -29,14 +29,14 @@ jobs:
|
|||||||
|
|
||||||
# Tests run as a PARALLEL TRIPWIRE: they fail the run if they fail, but the
|
# Tests run as a PARALLEL TRIPWIRE: they fail the run if they fail, but the
|
||||||
# release job does NOT `needs:` this job. The tag decision was already gated by
|
# release job does NOT `needs:` this job. The tag decision was already gated by
|
||||||
# the local precommit (same MSRV, same commit).
|
# CI (ci.yml on dev, then a green qa.yml on the same commit).
|
||||||
#
|
#
|
||||||
# Cargo.lock is now committed (issue #15), but --locked is still omitted: on
|
# Cargo.lock is now committed (issue #15), but --locked is still omitted: on
|
||||||
# the runner the libfreemkv dep resolves from crates.io, not the local path
|
# the runner the libfreemkv dep resolves from crates.io, not the local path
|
||||||
# patch, which --locked can't reconcile. Its
|
# patch, which --locked can't reconcile. Its
|
||||||
# libfreemkv dep resolves from crates.io (the dev .cargo/config.toml patch is
|
# libfreemkv dep resolves from crates.io (the dev .cargo/config.toml patch is
|
||||||
# gitignored and absent on the runner), so libfreemkv must already be published
|
# gitignored and absent on the runner), so libfreemkv must already be published
|
||||||
# at this version — the release script enforces that ordering before tagging.
|
# at this version — release-orchestrate.yml enforces that ordering before tagging.
|
||||||
test:
|
test:
|
||||||
needs: verify
|
needs: verify
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -51,12 +51,10 @@ jobs:
|
|||||||
- uses: Swatinem/rust-cache@v2
|
- uses: Swatinem/rust-cache@v2
|
||||||
- run: cargo test
|
- run: cargo test
|
||||||
|
|
||||||
# NOTE: the crates.io publish is driven by the maintainer's release tooling
|
# NOTE: there is no crates.io publish — keysources is `publish = false` and
|
||||||
# from local credentials, not from CI — this repo has no CARGO_REGISTRY_TOKEN
|
# git-tag-only. Consumers git-tag-pin it via a committed [patch.crates-io], so
|
||||||
# secret. release.sh runs `cargo publish --no-verify` locally. CI here only
|
# the git tag itself is the release artifact. CI here only verifies the
|
||||||
# verifies the version/tag match, runs tests (tripwire), and cuts the GitHub
|
# version/tag match, runs tests (tripwire), and cuts the GitHub Release.
|
||||||
# Release. The binaries git-tag-pin keysources, so they don't wait on the
|
|
||||||
# crates.io publish — it serves external consumers in parallel.
|
|
||||||
|
|
||||||
release:
|
release:
|
||||||
# Only needs `verify`; the GitHub Release is cut as soon as the version
|
# Only needs `verify`; the GitHub Release is cut as soon as the version
|
||||||
|
|||||||
Reference in New Issue
Block a user