脚踏实地
Camunda SDK仓库的共用基础设施。 这种回放提供了可再使用的GitHub动作工作流程,复合动作,CLI工具,以及共享配置来消除SDK回放的重复.
包括什么
| 目录 | 目的 |
|---|---|
.github/workflows/ | 可重复使用的 CI 工作流程( spec bandling, contentlint, 集成测试,代理示例覆盖) |
actions/ | 复合 GitHub 动作( 启动 Camunda 堆栈、 同步片段、 检查覆盖、 设置工具链) |
docker/ | 共享 Docker 编译集成测试文件 |
scripts/ | 统一的CLI工具(片段同步,实例覆盖检查,操作检测) |
configs/ | 共享承诺和语义释放基础配置 |
schema/ | JSON 计划 operation-map.json 验证 |
policies/ | 分类贡献准则(AGENTS.md) |
templates/ | SDK Repos 的分类问题表 |
SDK 重置快速启动
1. 捆绑(可重复使用的工作流程)
# .github/workflows/ci.yml
jobs:
bundle:
uses: camunda/sdk-infra/.github/workflows/sdk-bundle-spec.yml@v1
with:
spec-ref: stable/8.9
2. Comtlint(可重复使用的工作流程)
commitlint:
uses: camunda/sdk-infra/.github/workflows/sdk-commitlint.yml@v1
3. 开始Camunda综合测试(复合行动)
integration:
steps:
- uses: camunda/sdk-infra/actions/start-camunda@v1
with:
stack: full
version: 8.10.0
4. 同步 README 片断(复合动作)
snippets:
steps:
- uses: camunda/sdk-infra/actions/sync-readme-snippets@v1
with:
lang: python
check: true
5. 检查实例覆盖面(综合行动)
coverage:
steps:
- uses: camunda/sdk-infra/actions/check-example-coverage@v1
with:
operation-map: examples/operation-map.json
6. 代理实例覆盖(可重复使用的工作流程)
当日覆盖检查文件有“缺失实例覆盖”问题时,这些将运行 副驾驶CLI对抗回波,并用示例打开拉出请求. 打电话者拥有 只有触发器,权限,以及此处定义"验证"的命令.
# .github/workflows/agent-example-coverage.yml
on:
issues:
types: [labeled]
permissions: {}
jobs:
implement:
if: github.event.label.name == 'new-operations'
permissions:
contents: read
id-token: write
copilot-requests: write
issues: write
uses: camunda/sdk-infra/.github/workflows/sdk-agent-example-coverage.yml@v1
secrets:
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
VAULT_JWT_PATH: ${{ secrets.VAULT_JWT_PATH }}
VAULT_JWT_ROLE: ${{ secrets.VAULT_JWT_ROLE }}
VAULT_JWT_AUDIENCE: ${{ secrets.VAULT_JWT_AUDIENCE }}
with:
language: go
issue-number: ${{ github.event.issue.number }}
verify-commands: |
make check
一个同伴 sdk-agent-pr-followup.yml 对所产生的拉动请求的反馈作出反应
a 包括: /agent fix 注释, CI 运行失败, 或来自另一个机器人的审查 。 机器人审查
路径按小时运行 schedule 而不是继续 pull_request_review,因为 GitHub
任意运行 Copilot 演员触发手动审批背后.
宣告任何跟踪文件 核查命令 合法再生成( 锁文件, a)
记录固定) verify-artifacts; 任何他们接触的外部允许列表
失败了 而不是被卷进承诺.
在SDKs中,将每一次CI运行的光谱新鲜度捆绑在一起——js,python和csharp——一个新的
上游操作不立即检查每个打开拉动请求的覆盖范围, 没有任何
这导致了它. sdk-coverage-gap-dispatch.yml 通过发送
上面的探测器,所以差距被固定一次对 main,并留下一个注释
而不是把承诺推到别人的分行.
7. 问题标签(可重复使用的工作流程+问题表)
从问题表格和 Type: 编号 : Found-by: 编号 : Affects: 编号 : Severity: 线条在正文中,所以由代理在API上打开的问题与从浏览器上打开的相同. 见 政策/行动计划 对各公约而言。 复制 模板/ISSUE TEMPLATE/ 改为 .github/ISSUE_TEMPLATE/ (GitHub只从还原本身读出表格),并添加:
# .github/workflows/issue-labels.yml
on:
issues:
types: [opened, edited, reopened, labeled, unlabeled]
permissions:
issues: write
jobs:
label:
uses: camunda/sdk-infra/.github/workflows/sdk-issue-labels.yml@v1
8. 共享配置
// commitlint.config.cjs
module.exports = require('@camunda8/sdk-infra/configs/commitlint.config.base.cjs');
// release.config.cjs
const base = require('@camunda8/sdk-infra/configs/release.config.base.cjs');
module.exports = { ...base, plugins: [...base.plugins, /* language-specific */] };
地方发展工具
脚本在 scripts/ 可以用 Python 3.10+ 直接运行 :
# Sync README snippets
python3 scripts/sync-readme-snippets.py --lang csharp --readme ../my-sdk/README.md --examples-dir ../my-sdk/docs/examples --check
# Check example coverage
python3 scripts/check-example-coverage.py --spec ../my-sdk/external-spec/bundled/rest-api.bundle.json --map ../my-sdk/examples/operation-map.json
版本
两个发行渠道分别版本.
- npm 软件包 (单位:千美元)
@camunda8/sdk-infra)——由语义释出main编辑 版本在package.json是一个哨兵,从来不用手工编辑. - 可重复使用的工作流程和综合行动 - 移动的主标签
v1只有这个 SDK 重置 钉上它( p)@v1页:1Release工作流程将标签在每次推力上向前移动main。对工作流程或动作界面的中断更改会获得一个新的主要标记 (单位:千美元)v2)和消费者被故意迁移;添加剂变化留在当前 专业.
两个频道共用一个标签命名空间. vX.Y.Z 属于语义释放 并且从来没有
由手创建的——见AGENTS.md 为什么一个手动无声地花费npm释放.
语文说明
Python SDK 键盘
- 释放配置: Python 的使用
python-semantic-release(配置于pyproject.toml),而不是节点.jssemantic-release共享release.config.base.cjs已经 没有 适用于 Python. - 堆栈: Python只使用轻量级(单服务)多克堆栈. 这个
stack: full选项不适用.
类型脚本/ JS SDK
- 片段文件: JS SDK 存储仅导入的片段
.txt文件(例如,readme-imports.txt) (中文(简体) ). 统一同步脚本包括.txt在 TypeScript 文件扩展名中. - 多源标记: 跨越多源文件的复合区域在片段标记中使用逗号分隔路径(例如:,
examples/readme-imports.txt,examples/readme.ts) (中文(简体) ).
C# SDK (英语)
- 额外的CI检查C#SDK有一个
check-overwrite-completeness.js属于C#特有且未包含在以下共享中的守护.