You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+27-2Lines changed: 27 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,12 +9,13 @@ Shared CI for Kurokesu repos: reusable GitHub Actions workflows, canonical relea
9
9
| Workflow | Purpose | Called from |
10
10
| --- | --- | --- |
11
11
|`kernel-code-style.yml`| clang-format plus kernel checkpatch, profile per `platform` input | driver repo `main` shim |
12
+
|`dkms-version-guard.yml`| fail a PR that changes packaged content without moving `PACKAGE_VERSION`| driver repo `main` shim |
12
13
|`dkms-build.yml`| DKMS source package plus arch:all`.deb` in a clean container, callers pass nothing repo-specific | packaging branch `ci.yml` shim |
13
14
|`dkms-release.yml`| release pipeline on `debian/*` tag push: verify tags, build, sign, publish | packaging branch `release.yml` shim |
14
15
|`deb-sign.yml`| bundle artifacts, sign `SHA256SUMS` with archive key, self-verify |`dkms-release.yml`|
15
16
|`deb-publish.yml`| GitHub pre-release from `release-assets` artifact, re-run refreshes assets |`dkms-release.yml`|
16
17
17
-
`selftest.yml` is this repo's own CI. It runs `dkms-build.yml` against dummy DKMS fixtures on `selftest/*` orphan branches, one plain-version pair and one semver pre-release pair. Sign and publish have no selftest.
18
+
`selftest.yml` is this repo's own CI. It runs `dkms-build.yml` against dummy DKMS fixtures on `selftest/*` orphan branches, one plain-version pair and one semver pre-release pair. It also replays `dkms-version-guard.yml` over scratch repo fixtures (`tests/version-guard-cases.sh`). Sign and publish have no selftest.
`PACKAGE_VERSION` in `dkms.conf` names the DKMS artifact, what lands in `/usr/src/<package>-<version>` and what users quote from `dkms status` in bug reports. Two installs claiming one version must be bit-identical there. Guard enforces that on pull requests by diffing packaged paths against the base:
- repo-only, no bump: `setup.sh`, `README`, `docs/`, lint configs, workflows. Git history already answers which installer someone ran
48
+
49
+
Patch for a fix, minor for new capability such as a sensor mode, control or link-rate raise. Guard also rejects a version core moving backwards.
50
+
51
+
Early or multi-PR work escapes the per-PR bump with a pre-release. Set `0.2.0-alpha.1` on the first PR and the demand suspends for the whole series, however many PRs it takes, then promote to plain `0.2.0` on the last one. Keeps churn off the version while `main` stays installable. Spelling rules are in [versioning](#versioning).
`dkms-build.yml` and `dkms-release.yml` assume DEP-14 layout in the calling repo: driver source on `main` tagged `v<upstream>`, packaging recipe on `debian/latest` tagged `debian/<upstream>-<revision>`. Package name and build dependencies come from the recipe. Release verifies paired tags against `debian/changelog`, then builds, signs and publishes a GitHub pre-release. Signing needs the org-level `ARCHIVE_GPG_SIGNING_KEY` secret, passed with `secrets: inherit`.
0 commit comments