Skip to content

fix(ci): give tables a platform so add-on packages publish - #12879

Merged
mudler merged 1 commit into
masterfrom
fix/addon-pkg-ci
Oct 24, 2026
Merged

mudler merged 1 commit into
masterfrom
fix/addon-pkg-ci

Conversation

@mudler-agent

Copy link
Copy Markdown
Collaborator

Cause

The plan the event job of addons-package.yml runs addonpkg matrix for each add-on. On a publishing event an add-on with no enabled platform fails the plan on purpose. addons/tables/package/platforms.yaml listed three platforms, all enabled: false, and had no darwin/amd64 entry. Every master push failed with add-on tables has no enabled platform; refusing to publish, so nothing was packaged, published or signed.

The other six add-ons (voice, face, fine-tuning, quantization, studio, talk) enable linux/amd64, linux/arm64, darwin/arm64 and darwin/amd64. The Tables file was the only one left disabled. The workflow check is correct and is not changed.

Change

  • addons/tables/package/platforms.yaml: enable the same four platforms as the other add-ons, with the same runners and the executable-start native check. Tables had no darwin/amd64 entry, so it is added. I chose this set because I could not tell which subset Tables should ship; it is the set every other first-party add-on uses. Tables builds with cgo, so its darwin legs are the ones to watch on the first publish.
  • pkg/addons/packaging/packaging_test.go: the spec that required every Tables platform to be disabled now requires at least one enabled platform.
  • pkg/addons/packaging/platforms_test.go: Tables is checked like the other add-ons (all four platforms listed, enabled exactly when its native check is recorded).
  • scripts/addons/package_test.sh: the two fail-closed cases (matrix, and package.sh refusing a disabled platform) use a disabled copy of the Tables file instead of the checked-in one.

Local results

addonpkg matrix --config addons/<id>/package/platforms.yaml now prints four legs (darwin/amd64, darwin/arm64, linux/amd64, linux/arm64) for tables, voice, face, fine-tuning, quantization, studio and talk. Before the change tables exited with exit status 1.

The Decide what this event may publish script, run locally with EVENT=push REF=refs/heads/master, a test value for ADDON_OCI_REPOSITORY, and the head SHA, exits 0 and prints publish=true, channel=development, aliases=development, has_platforms=true, registry=quay.io, addons=["face","fine-tuning","quantization","studio","tables","talk","voice"] and a 28-leg matrix.

Tests: CGO_ENABLED=1 go test -tags auth ./pkg/addons/packaging: 134 specs, 134 passed, 0 failed (before the test updates: 133 passed, 1 failed on the old Tables expectation).

Not run

  • The real publish, signing and any registry login or push.
  • tests/addons/packaging and scripts/addons/package_test.sh: both need the generated gRPC stubs (make protogen-go), and no protoc was available locally. The CI validate job runs them. The shell edit passes sh -n.
  • The native legs on macOS and ARM runners.
  • No registry access: the Quay API answers 401 to anonymous calls, so I could not check that the repositories exist or are public.

Follow-up (needs a maintainer)

  1. Merge, then let the master run publish. gallery/addons/index.yaml is not touched here: its pinned sha-... tags and digests do not resolve until a publish runs. A follow-up change must re-pin them from the publish output.
  2. The Quay repositories for all seven add-ons must exist and be public, and the push robot needs write access.
  3. The repository variable ADDON_OCI_REPOSITORY is quay.io/go-skynet/local-ai-addons. docs/content/features/addons.md says it should be quay.io/go-skynet/local-ai-addons/tables. With the current value Tables would publish to go-skynet/local-ai-addons and the others to go-skynet/<id>, which does not match the pins in the index. Please check the value before the first publish.

The plan job of the add-on package workflow runs the platform matrix
for every add-on. On a publishing event it fails closed when an add-on
has no enabled platform. The Tables platform file listed three
platforms, all with enabled: false, so every master push failed
the plan and nothing was published or signed.

Enable the same four platforms as the other first-party add-ons
(linux/amd64, linux/arm64, darwin/arm64, darwin/amd64), each with its
native runner and the executable-start check. The fail-closed check in
the workflow is unchanged.

The tests assumed Tables was disabled. The matrix spec now requires at
least one enabled platform in the checked-in Tables file. The platform
spec covers Tables like the other add-ons. The shell suite builds a
disabled copy of the Tables file for the two fail-closed cases.

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]
@mudler
mudler merged commit 34306b8 into master Oct 24, 2026
93 of 95 checks passed
@mudler
mudler deleted the fix/addon-pkg-ci branch October 24, 2026 16:08
mudler added a commit that referenced this pull request Oct 24, 2026
…12884)

Tables now enables the four platforms the CI hosts run on (#12879), so the
spec that expected the host platform to be refused as not enabled failed on
the add-on packages run for 88aa565. The refused platform is now one the
matrix never lists.

Assisted-by: Claude:claude-sonnet-5-5 [Claude Code]

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Co-authored-by: Ettore Di Giacinto <mudler@localai.io>
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.

2 participants