Files
common-workflow/.github/workflows/agent-marketplace-ci.yaml
T
walterchengandClaude Opus 5 c8c80f4133 feat: target the flat layout and the central marketplace
Three defects, all of which surfaced flattening the first repository.

The two reusable workflows described the same layout differently: CI left
codex_plugin_root and cursor_plugin_root empty while release defaulted both to
a scaffold path. A repository that stopped shipping a nested plugin therefore
passed CI and failed release, on a directory it had never had. Both now default
to the repository itself, with cursor validation off unless asked for.

claude_marketplace_file defaulted to a manifest that a plugin repository no
longer carries, because the marketplace is generated centrally from the package
registry rather than committed to each repo.

The installation notes documented the flow this replaces — a per-release
installer URL, or a marketplace add against the repo at a tag. With a central
marketplace the instructions no longer mention the version at all: the manifest
names the package and npm resolves the newest.

Adds a dispatch step so a newly published plugin reaches the marketplace
promptly. Gitea's registry_package event cannot serve here — it only fires for
packages linked to the repository, and these are published from GitHub — so the
generator is called over Gitea's API instead. The step never fails the release:
the package is already published, and the generator's schedule catches up.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MgsFmepr9FxbFkax5Y2h6z
2026-08-23 19:59:20 -04:00

57 lines
1.9 KiB
YAML

name: Agent marketplace CI
on:
workflow_call:
inputs:
skill_root:
description: Canonical skill directory relative to the repository root.
required: false
type: string
default: skills
claude_marketplace_file:
description: >-
Claude marketplace manifest relative to the repository root. Empty by
default: a plugin repository no longer carries one, because the
central marketplace is generated from the package registry.
required: false
type: string
default: ""
claude_plugin_file:
description: Claude plugin manifest relative to the repository root.
required: false
type: string
default: .claude-plugin/plugin.json
codex_plugin_root:
description: >-
Codex plugin root relative to the repository root. Defaults to the
repository itself, matching the release workflow — these two described
the same layout differently, so CI passed while release failed.
required: false
type: string
default: "."
cursor_plugin_root:
description: >-
Cursor plugin root relative to the repository root. Empty disables
cursor validation.
required: false
type: string
default: ""
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Validate agent marketplace
uses: walter-base/common-workflow/actions/validate-agent-marketplace@master
with:
skill_root: ${{ inputs.skill_root }}
claude_marketplace_file: ${{ inputs.claude_marketplace_file }}
claude_plugin_file: ${{ inputs.claude_plugin_file }}
codex_plugin_root: ${{ inputs.codex_plugin_root }}
cursor_plugin_root: ${{ inputs.cursor_plugin_root }}