mirror of
https://github.com/walter-base/common-workflow.git
synced 2026-09-09 03:36:49 -04:00
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
57 lines
1.9 KiB
YAML
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 }}
|