Skip to content

ci: take the release pipeline's action majors together - #58

Merged
lorem-dev merged 1 commit into
developfrom
ci/release-action-majors
Sep 8, 2026
Merged

ci: take the release pipeline's action majors together#58
lorem-dev merged 1 commit into
developfrom
ci/release-action-majors

Conversation

@lorem-dev

Copy link
Copy Markdown
Owner

Supersedes #55 and #56. Landed as one commit because the two only ever run together, and each one's Dependabot pull request went stale the moment the other merged -- two rebase cycles for a two-line diff. upload-artifact v6 -> v7 went ahead of them in #54.

Neither action is exercised by any pull request: release.yml runs on a tag and nothing else. The compatibility review below stands in for a check.

download-artifact v7 -> v8

The one real breaking change of the three:

  • A digest mismatch is now an error, not a warning (digest-mismatch defaults to error).
  • The action no longer unzips a download whose Content-Type says it is not a zip.

Both exist to support v7's direct (unzipped) uploads. This pipeline uploads ordinary zipped artifacts and downloads them in the same run, so the second is inert and the first is a straight gain: a corrupted transfer now fails the release instead of publishing a damaged asset.

tauri-action v0.6.2 -> v1.0.0

Eight breaking changes upstream, none of which reach this workflow:

Upstream change Why it does not apply
assetNamePattern -> releaseAssetNamePattern, includeUpdaterJson -> uploadUpdaterJson not passed -- the step sets only projectPath and args
Removed includeRelease, includeDebug, updaterJsonKeepUniversal, project auto-init not passed
"will now update the name and body of existing releases" no tagName, so this is the build-only path; the publish job still owns the release and its CHANGES.md notes
.app.tar.gz and .sig now carry the version "Stage release assets" collects an explicit allowlist (dmg, deb, rpm, AppImage, msi, exe, msix, and the two skillkeeper-cli-* archives) that never included the updater bundles
Drops Tauri v1 and unstable v2 this app is on Tauri 2.11.5
Removed Gitea support not used

Two v1 changes do land on this layout, and the workflow already satisfies both:

  • Runner detection now fails loudly when a lockfile is present but its package manager is not installed. Enable pnpm via corepack and Install dependencies (frozen lockfile) both run before this step.
  • Lockfile detection now walks up the file tree. With projectPath: apps/desktop and the only pnpm-lock.yaml at the repository root, v1 finds a lockfile where v0.6.2 found none. Worst case is a redundant install.

Verification

setup-uv v10 (#57) was verified for real rather than reviewed: docs.yml has workflow_dispatch, so it ran end-to-end on the Dependabot branch -- Install uv and Deploy docs both succeeded.

There is no equivalent for release.yml. The check for this one is a release candidate: RC tags are cut from develop, publish as a GitHub pre-release, and releases/latest/download/... -- what both one-line installers use -- never resolves to a pre-release, so an RC cannot reach users.

download-artifact v7 -> v8 and tauri-action v0.6.2 -> v1.0.0, landed in
one commit because they only ever run together and each one's Dependabot
pull request went stale the moment the other merged. upload-artifact
v6 -> v7 went ahead of them in #54.

Neither is exercised by any pull request: release.yml runs on a tag and
nothing else. What follows is the compatibility review that stands in
for a check, per change.

download-artifact v8 has the one real breaking change of the three. A
digest mismatch is now an error rather than a warning, and the action no
longer unzips a download whose Content-Type says it is not a zip. Both
exist to support v7's direct (unzipped) uploads; this pipeline uploads
ordinary zipped artifacts and downloads them in the same run, so the
second is inert and the first is a straight gain -- a corrupted transfer
now fails the release instead of publishing a damaged asset.

tauri-action v1.0.0 carries eight breaking changes and none of them
reach this workflow:

  - The step passes `projectPath` and `args`, nothing else. The renamed
    inputs (assetNamePattern, includeUpdaterJson) and the removed ones
    (includeRelease, includeDebug, updaterJsonKeepUniversal, project
    auto-init) are all unused.
  - No `tagName`, so this is the build-only path and the new "update the
    name and body of an existing release" behaviour cannot fire. The
    publish job still owns the release and its CHANGES.md notes.
  - `.app.tar.gz` and its signature now carry the version. Nothing here
    reads them: "Stage release assets" collects an explicit extension
    allowlist (dmg, deb, rpm, AppImage, msi, exe, msix, and the two
    skillkeeper-cli archives), which never included the updater bundles.
  - Tauri v1 and unstable v2 support is dropped; this app is on 2.11.5.

Two v1 changes do land on this layout, and the workflow already
satisfies both. Runner detection now fails loudly when a lockfile is
present but its package manager is not installed -- corepack and
`pnpm install --frozen-lockfile` both run before this step. And lockfile
detection now walks up the tree, so with `projectPath: apps/desktop` and
the only pnpm-lock.yaml at the repository root, v1 finds a lockfile
where v0.6.2 found none. The worst case there is a redundant install.

The real check is a release candidate: RC tags are cut from develop,
publish as a pre-release, and releases/latest/download never resolves to
a pre-release, so one cannot reach install.sh users.
@lorem-dev
lorem-dev merged commit ca875f9 into develop Sep 8, 2026
7 checks passed
@lorem-dev
lorem-dev deleted the ci/release-action-majors branch September 9, 2026 11:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant