mirror of
https://github.com/freemkv/freemkv-unlock.git
synced 2026-10-07 18:13:11 +00:00
ci: consumers path-patch; monthly grouped dependabot; actions/checkout 7
The consumers job path-patches this commit into libfreemkv and bdemu. Dependabot runs monthly with grouped version updates. actions/checkout 5 -> 7 in ci and qa (#15).
This commit is contained in:
+13
-43
@@ -1,63 +1,33 @@
|
|||||||
|
# Version updates are monthly and grouped into one PR per ecosystem.
|
||||||
|
# Security updates are separate and run whenever an advisory is published.
|
||||||
version: 2
|
version: 2
|
||||||
|
|
||||||
# Dependency updates land on `dev`, never on `main`.
|
|
||||||
#
|
|
||||||
# `main` here is a RELEASE POINTER that release.sh moves to each tag. A bot
|
|
||||||
# commit on it would put work there that no tag contains, which is exactly the
|
|
||||||
# state that aborted the 1.6.2 cascade at the last step -- so pointing
|
|
||||||
# Dependabot at main would recreate that failure on a schedule.
|
|
||||||
updates:
|
updates:
|
||||||
- package-ecosystem: cargo
|
- package-ecosystem: cargo
|
||||||
directory: /
|
directory: /
|
||||||
target-branch: dev
|
target-branch: dev
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: monthly
|
||||||
open-pull-requests-limit: 5
|
open-pull-requests-limit: 5
|
||||||
# One PR per week for the routine bumps instead of one per crate. Eight
|
|
||||||
# repos times a handful of crates is a volume nobody reads, and an
|
|
||||||
# unread PR queue is indistinguishable from no updates at all.
|
|
||||||
groups:
|
groups:
|
||||||
minor-and-patch:
|
all:
|
||||||
update-types:
|
patterns:
|
||||||
- minor
|
- '*'
|
||||||
- patch
|
|
||||||
ignore:
|
ignore:
|
||||||
# The freemkv crates depend on each other by GIT TAG, re-pinned by
|
|
||||||
# release.sh as part of the release commit. Dependabot cannot see that
|
|
||||||
# cascade, so a PR bumping one of these would fight the release process
|
|
||||||
# and could pin a version whose tag does not exist yet.
|
|
||||||
- dependency-name: freemkv-unlock
|
- dependency-name: freemkv-unlock
|
||||||
- dependency-name: libfreemkv
|
- dependency-name: libfreemkv
|
||||||
- dependency-name: freemkv-keysources
|
- dependency-name: freemkv-keysources
|
||||||
- dependency-name: freemkv-i18n
|
- dependency-name: freemkv-i18n
|
||||||
- dependency-name: freemkv-engine
|
- dependency-name: freemkv-engine
|
||||||
|
- package-ecosystem: github-actions
|
||||||
# The workflows are now real infrastructure -- the release cascade, the
|
|
||||||
# cross-platform hash matrix, the disc gate -- so their actions need the same
|
|
||||||
# attention as the crates.
|
|
||||||
- package-ecosystem: github-actions
|
|
||||||
directory: /
|
directory: /
|
||||||
target-branch: dev
|
target-branch: dev
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: monthly
|
||||||
open-pull-requests-limit: 5
|
open-pull-requests-limit: 5
|
||||||
groups:
|
groups:
|
||||||
actions:
|
all:
|
||||||
update-types:
|
patterns:
|
||||||
- minor
|
- '*'
|
||||||
- patch
|
|
||||||
ignore:
|
ignore:
|
||||||
# NOT a dependency: `dtolnay/rust-toolchain` is versioned by the RUST
|
|
||||||
# release it installs, and the tag we pin is the toolchain CI is pinned
|
|
||||||
# to on purpose -- precommit.sh runs the same one locally so a lint that
|
|
||||||
# passes on a developer's newer default cannot pass CI by accident.
|
|
||||||
#
|
|
||||||
# Dependabot reads those tags as semver and proposed 1.97.0 -> 1.100.0,
|
|
||||||
# a Rust version that does not exist. Every such PR 404s on toolchain
|
|
||||||
# download across all eight repos, and they regenerate weekly -- eight
|
|
||||||
# permanently-red PRs that promote.yml then has to special-case when it
|
|
||||||
# decides whether dev is green.
|
|
||||||
#
|
|
||||||
# Bumping the toolchain is a deliberate, all-eight-repos change, made by
|
|
||||||
# hand together with precommit.sh. There is nothing here for a bot.
|
|
||||||
- dependency-name: dtolnay/rust-toolchain
|
- dependency-name: dtolnay/rust-toolchain
|
||||||
|
- dependency-name: freemkv/.github*
|
||||||
|
|||||||
+16
-12
@@ -46,7 +46,7 @@ jobs:
|
|||||||
outputs:
|
outputs:
|
||||||
v: ${{ steps.msrv.outputs.v }}
|
v: ${{ steps.msrv.outputs.v }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- id: msrv
|
- id: msrv
|
||||||
shell: bash
|
shell: bash
|
||||||
run: echo "v=$(grep -m1 '^rust-version' Cargo.toml | sed -E 's/.*\"([^\"]+)\".*/\1/')" >> "$GITHUB_OUTPUT"
|
run: echo "v=$(grep -m1 '^rust-version' Cargo.toml | sed -E 's/.*\"([^\"]+)\".*/\1/')" >> "$GITHUB_OUTPUT"
|
||||||
@@ -60,7 +60,7 @@ jobs:
|
|||||||
changelog:
|
changelog:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- name: Require a CHANGELOG entry for the crate version on main
|
- name: Require a CHANGELOG entry for the crate version on main
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@@ -81,7 +81,7 @@ jobs:
|
|||||||
needs: resolve-msrv
|
needs: resolve-msrv
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
# fmt runs on the pinned MSRV toolchain; clippy runs on stable. Linting on
|
# fmt runs on the pinned MSRV toolchain; clippy runs on stable. Linting on
|
||||||
# stable makes new-lint debt a BLOCKING gate the pinned version would
|
# stable makes new-lint debt a BLOCKING gate the pinned version would
|
||||||
# otherwise hide. The MSRV pin is installed second so it stays the default
|
# otherwise hide. The MSRV pin is installed second so it stays the default
|
||||||
@@ -104,7 +104,7 @@ jobs:
|
|||||||
needs: resolve-msrv
|
needs: resolve-msrv
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: dtolnay/rust-toolchain@master
|
- uses: dtolnay/rust-toolchain@master
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ needs.resolve-msrv.outputs.v }}
|
toolchain: ${{ needs.resolve-msrv.outputs.v }}
|
||||||
@@ -119,19 +119,23 @@ jobs:
|
|||||||
- run: cargo test --doc --all-features
|
- run: cargo test --doc --all-features
|
||||||
|
|
||||||
# This crate's breakage takes every dependent down, so build the two direct
|
# This crate's breakage takes every dependent down, so build the two direct
|
||||||
# consumers against THIS commit. libfreemkv resolves ../freemkv-unlock by
|
# consumers against THIS commit: both dep freemkv-unlock by version, so each
|
||||||
# layout; bdemu (emulation feature) also needs libfreemkv patched to the sibling.
|
# gets a path patch (bdemu also patches libfreemkv to the sibling).
|
||||||
consumers:
|
consumers:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
path: freemkv-unlock
|
path: freemkv-unlock
|
||||||
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
|
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
|
||||||
with:
|
with:
|
||||||
checkout: libfreemkv bdemu
|
checkout: libfreemkv bdemu
|
||||||
patch: libfreemkv
|
patch: libfreemkv freemkv-unlock
|
||||||
self: bdemu
|
self: bdemu
|
||||||
|
- name: Point libfreemkv at THIS commit
|
||||||
|
run: |
|
||||||
|
mkdir -p libfreemkv/.cargo
|
||||||
|
printf '[patch.crates-io]\nfreemkv-unlock = { path = "../freemkv-unlock" }\n' > libfreemkv/.cargo/config.toml
|
||||||
# Dependents track current Rust, not this crate's MSRV.
|
# Dependents track current Rust, not this crate's MSRV.
|
||||||
- uses: dtolnay/rust-toolchain@stable
|
- uses: dtolnay/rust-toolchain@stable
|
||||||
- uses: Swatinem/rust-cache@v2
|
- uses: Swatinem/rust-cache@v2
|
||||||
@@ -154,7 +158,7 @@ jobs:
|
|||||||
needs: resolve-msrv
|
needs: resolve-msrv
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: dtolnay/rust-toolchain@master
|
- uses: dtolnay/rust-toolchain@master
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ needs.resolve-msrv.outputs.v }}
|
toolchain: ${{ needs.resolve-msrv.outputs.v }}
|
||||||
@@ -179,7 +183,7 @@ jobs:
|
|||||||
deny:
|
deny:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: dtolnay/rust-toolchain@stable
|
- uses: dtolnay/rust-toolchain@stable
|
||||||
- uses: EmbarkStudios/cargo-deny-action@v2
|
- uses: EmbarkStudios/cargo-deny-action@v2
|
||||||
with:
|
with:
|
||||||
@@ -205,7 +209,7 @@ jobs:
|
|||||||
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
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: dtolnay/rust-toolchain@master
|
- uses: dtolnay/rust-toolchain@master
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ needs.resolve-msrv.outputs.v }}
|
toolchain: ${{ needs.resolve-msrv.outputs.v }}
|
||||||
@@ -230,7 +234,7 @@ jobs:
|
|||||||
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
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: dtolnay/rust-toolchain@master
|
- uses: dtolnay/rust-toolchain@master
|
||||||
with:
|
with:
|
||||||
toolchain: ${{ needs.resolve-msrv.outputs.v }}
|
toolchain: ${{ needs.resolve-msrv.outputs.v }}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ jobs:
|
|||||||
outputs:
|
outputs:
|
||||||
v: ${{ steps.msrv.outputs.v }}
|
v: ${{ steps.msrv.outputs.v }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- id: msrv
|
- id: msrv
|
||||||
shell: bash
|
shell: bash
|
||||||
run: echo "v=$(grep -m1 '^rust-version' Cargo.toml | sed -E 's/.*\"([^\"]+)\".*/\1/')" >> "$GITHUB_OUTPUT"
|
run: echo "v=$(grep -m1 '^rust-version' Cargo.toml | sed -E 's/.*\"([^\"]+)\".*/\1/')" >> "$GITHUB_OUTPUT"
|
||||||
@@ -64,7 +64,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- name: Stamp the next rc
|
- name: Stamp the next rc
|
||||||
@@ -93,7 +93,7 @@ jobs:
|
|||||||
os: ['ubuntu-latest', 'macos-latest']
|
os: ['ubuntu-latest', 'macos-latest']
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
path: freemkv-unlock
|
path: freemkv-unlock
|
||||||
- uses: dtolnay/rust-toolchain@master
|
- uses: dtolnay/rust-toolchain@master
|
||||||
@@ -111,7 +111,7 @@ jobs:
|
|||||||
cross-lint:
|
cross-lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
path: freemkv-unlock
|
path: freemkv-unlock
|
||||||
# clippy runs on stable (matches ci.yml's lint job); build/test stay on
|
# clippy runs on stable (matches ci.yml's lint job); build/test stay on
|
||||||
@@ -134,7 +134,7 @@ jobs:
|
|||||||
needs: resolve-msrv
|
needs: resolve-msrv
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
with:
|
with:
|
||||||
path: freemkv-unlock
|
path: freemkv-unlock
|
||||||
- uses: dtolnay/rust-toolchain@master
|
- uses: dtolnay/rust-toolchain@master
|
||||||
|
|||||||
Reference in New Issue
Block a user