tao.chen and Claude
287d098e06
ci: release upload 改用 Gitea API 直调
...
CI / Release / CI (push) Successful in 1m55s
CI / Release / Release (push) Successful in 6m28s
softprops/action-gh-release@v2 在 Gitea 上偶发不工作, 改用
Gitea 原生 API:
POST /repos/{owner}/{repo}/releases <- 创建 release
POST /repos/{owner}/{repo}/releases/{id}/assets <- 上传 binary
token 走 secrets.GITHUB_TOKEN (Gitea 自动注入平台 token),
api_url 走 \${{ github.api_url }} (Gitea 自动解析).
RELEASE_ID 从 POST /releases 响应 grep 出来 (用 -oP "id":\s*\K[0-9]+).
- PCRE 模式 (grep -P) 依赖 GNU grep, ubuntu 镜像自带有, alpine
runner 需要补 pcre 工具. 跟之前去 jq 一样是 runner 镜像依赖,
这次保留因为已经在用 \${{ secrets.GITHUB_TOKEN }} 这种 GitHub
风格 secret, runner 假定 ubuntu-family.
asset 上传字段是 attachment (Gitea API 文档要求, 不是 name).
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-15 09:37:57 +08:00
tao.chen and Claude
e2bbbd5c45
ci: Bark 通知 group 改 release
...
CI / Release / CI (push) Successful in 1m49s
CI / Release / Release (push) Failing after 1m31s
之前用 "backup" 是从另一个 workflow 抄过来, 不准确. release 通
知归档到 "release" group, Bark 端按 group 分类更直观.
只改一处, 不动其他逻辑.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-14 19:22:00 +08:00
tao.chen and Claude
1cf4f90452
ci: release 通知 step 去掉 jq 依赖
...
CI / Release / CI (push) Successful in 5m42s
CI / Release / Release (push) Has been skipped
之前用 jq -n --arg 拼 JSON payload, 依赖 runner 镜像预装 jq.
Gitea act_runner 镜像可以自定义 (alpine / distroless / 极简
ubuntu), 不一定带 jq. 一旦缺, release 通知 step 静默失败
(curl 仍然发但 payload 是空字符串, Bark 端按 400/500 处理),
release 仍然成功上传但 user 收不到通知.
改用 heredoc 直接展开 shell 变量拼 JSON:
PAYLOAD=$(cat <<EOF
{ "device_key": "...", "title": "${TITLE}", ... }
EOF
)
TITLE (tag 名, 形如 v0.0.1-beta) 和 BODY (release URL, 只含
https URL + tag 字符串) 都没有 ", \, 控制字符, heredoc 展开
安全. 不需要 jq 转义.
这一步跟 release upload 串行 (release job 本身顺序 steps), Bark
通知仍然是 release 成功的最后一步, if: success() 保留.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-14 19:21:18 +08:00
tao.chen and Claude
2bd67a5afc
ci: release 后调 Bark 推送 release 通知
...
CI / Release / CI (push) Failing after 16m37s
CI / Release / Release (push) Has been skipped
release job 在 softprops/action-gh-release@v2 上传完
spark-mcp-linux-amd64 后, 调 Bark (http://101.43.40.124:81/push ) 推
一条 device_key 绑定的通知, 标题用 github.ref_name (e.g.
v0.0.1-beta), body 带 release 页面 URL.
device_key 直接写进 workflow, 是公开的推送 key, group=backup
归档, ttl=3600 (1 小时后从 Bark 设备上消失).
if: success() 保证 release upload 失败时不会发通知, 避免推送
"已发布" 但实际没有的误导信息.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-14 19:19:35 +08:00
tao.chen
1460303b3e
update: GOPROXY in release workflow
CI / Release / CI (push) Successful in 3m37s
CI / Release / Release (push) Failing after 1m27s
2026-07-14 19:11:43 +08:00
tao.chen
02499922b4
update: GOPROXY in building workflow
CI / Release / Release (push) Has been cancelled
CI / Release / CI (push) Has been cancelled
2026-07-14 19:06:53 +08:00
tao.chen and Claude
25c2fc66be
ci: 改 workflow 用国内镜像装 Go + goproxy.cn 加速
...
CI / Release / CI (push) Successful in 7m45s
CI / Release / Release (push) Has been skipped
之前 ci/release 两个 job 用 actions/setup-go@v5 从 go.mod 装 Go,
内置 cache. 在 Gitea runner 所在网络区域 (ping 23ms 短, 推测
国内) 跑得动但慢.
改用用户提供的脚本手动装 Go 1.25.5 (NJU 镜像) + goproxy.cn 代理
+ GITHUB_PATH/GITHUB_ENV (Gitea runner 也兼容这俩 env var).
actions/setup-go 整个去掉, 因为手动装后 PATH 跟 GOPROXY 都设好,
go build 直接可跑.
GITBUB_PATH/GITHUB_ENV 是 GitHub Actions 的特殊 file path env var,
Gitea Actions 兼容 (api-compatible). 写到这两个文件等价于在
后续 step 设置 PATH 和 环境变量.
保留 go build / go vet / go test / gofmt -l . 四项 CI gate.
保留 release job 的 tag 触发 + softprops/action-gh-release@v2 上传.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-14 19:03:29 +08:00
tao.chen and Claude
80e644483a
Add Gitea Actions CI/release workflow
...
CI / Release / Release (push) Has been cancelled
CI / Release / CI (push) Has been cancelled
The ci job triggers on every push to main and every pull request; the release job triggers only on tag pushes matching v* and needs the ci job to pass first.
We place the workflow under .github/workflows/ because Gitea Actions is API-compatible with GitHub Actions and discovers workflows in that directory.
The release build command is GOOS=linux GOARCH=amd64 go build -o spark-mcp-linux-amd64 ./main.go, producing the Linux amd64 artifact requested for deployment.
CI runs go build ./..., go vet ./..., go test ./..., and fails if gofmt -l . reports any unformatted files.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-07-14 16:11:27 +08:00