Skip to content

infra|fix: add prebuild job to on-merge-classification-ggml workflow#2141

Merged
DmitryMalishev merged 3 commits into
tetherto:mainfrom
DmitryMalishev:fix/classification-ggml-on-merge-prebuild
May 20, 2026
Merged

infra|fix: add prebuild job to on-merge-classification-ggml workflow#2141
DmitryMalishev merged 3 commits into
tetherto:mainfrom
DmitryMalishev:fix/classification-ggml-on-merge-prebuild

Conversation

@DmitryMalishev

Copy link
Copy Markdown
Contributor

This fix is needed to make NPM releases automatically for Classification Addon

The release pipeline was missing the native-prebuild build step. Without it, integration tests across all 5 platforms could not load libqvac__classification-ggml.{so,dylib,dll} (ADDON_NOT_FOUND), and the npm publish step would have shipped a tarball with no prebuilds/ directory.

This mirrors the working on-merge-vla.yml pattern (and matches what on-pr-classification-ggml.yml already does for PR validation):

  • Add a prebuild job that reuses .github/workflows/prebuilds-classification-ggml.yml.
  • Make run-integration-tests, mobile-integration-tests, publish-gpr, and publish-release-npm depend on prebuild.
  • Gate publish-gpr and publish-release-npm on needs.prebuild.result == 'success' so a prebuild failure does not cascade into a broken npm publish.
  • Have publish-gpr and publish-release-npm download the merged prebuilds artifact produced by reusable-prebuilds.yml before invoking the publish action.

Repro of the original failure:
https://github.com/tetherto/qvac/actions/runs/26159115931 -- all five run-integration-tests matrix legs and both mobile legs fail with ADDON_NOT_FOUND; publish-release-npm then also fails (separately -- new package needs npm-scope grant; tracked outside this PR).

What problem does this PR solve?

How does it solve it?

Breaking changes

The release pipeline was missing the native-prebuild build step. Without
it, integration tests across all 5 platforms could not load
`libqvac__classification-ggml.{so,dylib,dll}` (ADDON_NOT_FOUND), and the
npm publish step would have shipped a tarball with no `prebuilds/`
directory.

This mirrors the working `on-merge-vla.yml` pattern (and matches what
`on-pr-classification-ggml.yml` already does for PR validation):

  * Add a `prebuild` job that reuses
    `.github/workflows/prebuilds-classification-ggml.yml`.
  * Make `run-integration-tests`, `mobile-integration-tests`,
    `publish-gpr`, and `publish-release-npm` depend on `prebuild`.
  * Gate `publish-gpr` and `publish-release-npm` on
    `needs.prebuild.result == 'success'` so a prebuild failure does not
    cascade into a broken npm publish.
  * Have `publish-gpr` and `publish-release-npm` download the merged
    `prebuilds` artifact produced by `reusable-prebuilds.yml` before
    invoking the publish action.

Repro of the original failure:
https://github.com/tetherto/qvac/actions/runs/26159115931 -- all five
`run-integration-tests` matrix legs and both mobile legs fail with
`ADDON_NOT_FOUND`; `publish-release-npm` then also fails (separately --
new package needs npm-scope grant; tracked outside this PR).
@DmitryMalishev

Copy link
Copy Markdown
Contributor Author

/review

@github-actions

github-actions Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Tier-based Approval Status

**PR Tier:** TIER1

**Current Status:** ✅ APPROVED

**Requirements:**
- 1 Team Member approval ✅ (1/1)
- 1 Team Lead OR Management approval ✅ (1/1)



---
*This comment is automatically updated when reviews change.*

@DmitryMalishev

Copy link
Copy Markdown
Contributor Author

/review

@DmitryMalishev DmitryMalishev merged commit 1b255c6 into tetherto:main May 20, 2026
11 checks passed
Proletter pushed a commit that referenced this pull request May 24, 2026
The release pipeline was missing the native-prebuild build step. Without
it, integration tests across all 5 platforms could not load
`libqvac__classification-ggml.{so,dylib,dll}` (ADDON_NOT_FOUND), and the
npm publish step would have shipped a tarball with no `prebuilds/`
directory.

This mirrors the working `on-merge-vla.yml` pattern (and matches what
`on-pr-classification-ggml.yml` already does for PR validation):

  * Add a `prebuild` job that reuses
    `.github/workflows/prebuilds-classification-ggml.yml`.
  * Make `run-integration-tests`, `mobile-integration-tests`,
    `publish-gpr`, and `publish-release-npm` depend on `prebuild`.
  * Gate `publish-gpr` and `publish-release-npm` on
    `needs.prebuild.result == 'success'` so a prebuild failure does not
    cascade into a broken npm publish.
  * Have `publish-gpr` and `publish-release-npm` download the merged
    `prebuilds` artifact produced by `reusable-prebuilds.yml` before
    invoking the publish action.

Repro of the original failure:
https://github.com/tetherto/qvac/actions/runs/26159115931 -- all five
`run-integration-tests` matrix legs and both mobile legs fail with
`ADDON_NOT_FOUND`; `publish-release-npm` then also fails (separately --
new package needs npm-scope grant; tracked outside this PR).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants