解决 devapp→dev 重构与 connect/数字分身工作的合并冲突,方向:全面对齐 wxianfeng 的 dev 命名空间,保留我方两处实质内容(动态端点 + connect 功能)。 冲突解决要点: - release.yml:取 wxianfeng 更干净的 npm 守卫(repository_owner + 注释); 保留我新增的「-dws-devapp 翻成非 prerelease+latest」步骤 - devapp.go / devapp_test.go / 路由文档:取 wxianfeng(新 MCP 工具名 *_dev_app_*/extension、新增 event 工具、删 robot create、config 合 upsert) - 端点:保留我方动态 devappMCPEndpoint()(网关 base 推导、生产默认), 否则会把「建号对所有人打预发」的 bug 倒灌回来;同步修 helper_tool_fetcher.go 与 direct_runtime_test.go 改用该函数 + wxianfeng 工具名 list_dev_app - devapp_connect.go:connect 命令对齐 dev connect 命名,保留我方 --agent-cmd 自研渠道示例(#37),建号引用修正为真实存在的 robot submit - skills:跟随 wxianfeng 删除旧 dingtalk-devapp(已被重写的 dingtalk-dev 覆盖) - robot-quickstart.md:命令全改 dws dev(建号两步 submit+result、dev connect), 下载源改 wxianfeng,去掉写死版本号用 releases/latest 验证:go build ./... 通过;go vet 干净;internal/app、internal/helpers 单测全过
84 lines
2.6 KiB
YAML
84 lines
2.6 KiB
YAML
name: Release
|
||
|
||
on:
|
||
push:
|
||
tags:
|
||
- "v*"
|
||
workflow_dispatch:
|
||
|
||
permissions:
|
||
contents: write
|
||
|
||
jobs:
|
||
release:
|
||
runs-on: ubuntu-latest
|
||
timeout-minutes: 30
|
||
|
||
steps:
|
||
- name: Check out repository
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 0
|
||
|
||
- name: Set up Go
|
||
uses: actions/setup-go@v5
|
||
with:
|
||
go-version-file: go.mod
|
||
|
||
- name: Install archive tooling
|
||
run: sudo apt-get update && sudo apt-get install -y zip unzip
|
||
|
||
- name: Install rcodesign (ad-hoc sign darwin binaries from Linux)
|
||
run: |
|
||
set -eu
|
||
RCS_VERSION="0.27.0"
|
||
curl -fsSL -o /tmp/rcodesign.tar.gz \
|
||
"https://github.com/indygreg/apple-platform-rs/releases/download/apple-codesign%2F${RCS_VERSION}/apple-codesign-${RCS_VERSION}-x86_64-unknown-linux-musl.tar.gz"
|
||
mkdir -p /tmp/rcodesign
|
||
tar -xzf /tmp/rcodesign.tar.gz -C /tmp/rcodesign --strip-components=1
|
||
sudo install -m 0755 /tmp/rcodesign/rcodesign /usr/local/bin/rcodesign
|
||
rcodesign --version
|
||
|
||
- name: Run GoReleaser
|
||
uses: goreleaser/goreleaser-action@v6
|
||
with:
|
||
version: "~> v2"
|
||
args: release --clean
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
- name: Post-release packaging
|
||
run: ./scripts/release/post-goreleaser.sh
|
||
env:
|
||
DWS_PACKAGE_VERSION: ${{ github.ref_name }}
|
||
|
||
- name: Upload dws-skills.zip to release
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
run: |
|
||
gh release upload "${{ github.ref_name }}" dist/dws-skills.zip --clobber
|
||
|
||
# goreleaser marks -dws-devapp tags as prerelease (semver suffix), so
|
||
# /releases/latest skips them and "install latest" breaks. Flip only the
|
||
# devapp edition to a non-prerelease "latest" — dev.x stays prerelease.
|
||
- name: Mark dws-devapp release as latest
|
||
if: contains(github.ref_name, '-dws-devapp')
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
run: |
|
||
gh release edit "${{ github.ref_name }}" --prerelease=false --latest
|
||
|
||
- name: Setup Node.js
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: "20"
|
||
registry-url: "https://registry.npmjs.org"
|
||
|
||
- name: Publish to npm
|
||
# 只有官方仓库发 npm;fork(dev 预览)没有 NPM_TOKEN,跳过以免红叉
|
||
if: ${{ github.repository_owner == 'DingTalk-Real-AI' }}
|
||
working-directory: dist/npm/dingtalk-workspace-cli
|
||
run: npm publish --access public
|
||
env:
|
||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|