Install
openclaw skills install github-acr-releaseGitHub + 阿里云 ACR 项目发布流程管理。支持新建发布流程(交互式配置)、标准发布(代码检查→版本确认→GitHub Release→ACR镜像推送→服务器更新)和热更新(快速构建部署)。触发词:新建发布流程、发布、push、热更新、发版。
openclaw skills install github-acr-release管理项目的完整发布流程,同时覆盖 GitHub Release 和阿里云 ACR Docker 镜像推送,支持两种模式:
-hotfix.N 后缀,跳过 GitHub Release)__version__.py)、data/VERSIONS.json 中 current.version、GitHub tag 必须一致。current 段,追加当前版本 changelog 条目,不动历史记录。每个项目的发布流配置存储在:
~/.openclaw/workspace/skills/github-acr-release/projects/{project-name}.json
{
"name": "my-project",
"description": "项目描述",
"created_at": "2026-06-09",
"project_dir": "/home/openclaw/workspace/my-project",
"version": {
"file": "backend/__version__.py",
"pattern": "__version__ = \"X.Y.Z\"",
"format": "semantic"
},
"versions_json": "data/VERSIONS.json",
"source_lang": "python",
"has_frontend": true,
"frontend_build_cmd": "cd frontend && node compile.js",
"docker": {
"compose_file": "docker-compose.yml",
"Dockerfile": "Dockerfile",
"acr": {
"registry": "registry.cn-hangzhou.aliyuncs.com",
"namespace": "my-project",
"repo": "my-project",
"image_url": "registry.cn-hangzhou.aliyuncs.com/my-project/my-project"
},
"port": 8765
},
"server": {
"enabled": false,
"user": "",
"host": "",
"project_dir": "",
"verify_url": ""
},
"repo": {
"branch": "main",
"remote": "origin"
}
}
当用户说"新建发布流程"、"搭建发布流"、"创建发布配置"等时,进入交互式问询流程。
data/VERSIONS.json)收集完毕后生成配置摘要展示给用户,等待确认后写入配置文件。
确认后写入配置,告知用户:
✅ "{项目名}" 发布流已创建。后续说"发布"或"热更新"即可触发。
| 用户输入 | 触发模式 | 说明 |
|---|---|---|
新建发布流程、搭建发布流 | 新建配置 | 交互式问询,建立项目发布流 |
发布、发版、push | 标准发布 | 读取已有配置,执行完整发布流程(含 GitHub tag + Release) |
热更新、快速更新、hotfix | 热更新 | 推代码到 GitHub → Actions 构建 → ACR 推送 → 服务器更新(可选) |
注意:如果项目还没有发布流配置文件(projects/{project-name}.json 不存在),提示用户先"新建发布流程"。
Step 1.1: 代码质量检查
python3 -m py_compilego vet ./...cargo checknode -cStep 1.2: 版本信息验证
__version__.py),确认 X.Y.Z 格式data/VERSIONS.json)中读取 current.versioncurrent.versionStep 1.3: 生成发布说明并更新 VERSIONS.json 根据本次发布内容,生成 changelog 条目,格式化为:
## {VERSION} ({DATE})
### 概述
{NOTES}
### Added / 新增
- {item}
### Changed / 优化
- {item}
### Fixed / 修复
- {item}
在用户确认前,先更新 data/VERSIONS.json:
changelog 数组头部current 段:version、date、notes 改为本次发布信息展示格式化后的 Release Notes 给用户,等待明确确认后继续。
Step 2.1: 编译前端(如有)
cd frontend && node compile.js
Step 2.2: 推代码到 GitHub
cd {project_dir}
git add -A
git commit -m "release: v{VERSION} — {NOTES摘要}"
git push {remote} {branch}
VERSIONS.json 已在此前更新,一并推送到 GitHub。镜像通过 GitHub Actions 构建。
Step 2.3: 打 Tag 并推送(标准发布执行,热更新跳过)
git tag -a v{VERSION} -m "Release v{VERSION}"
git push {remote} {branch} --tags
GitHub Actions 自动监听 tag 事件触发构建。
Step 2.4: 等待 GitHub Actions 构建完成
on: push: tags 自动触发Step 2.5: 创建 GitHub Release 在 GitHub 页面创建 Release,粘贴格式化后的 Release Notes。
Step 2.6: 远程服务器更新(如有)
ssh {user}@{host}
cd {project_dir}
docker compose pull
docker compose up -d
docker compose ps
curl -s {verify_url}
Step 2.7: 更新记忆与文档
与标准发布区别:
-hotfix.N 后缀(N 从 1 递增)执行步骤:
1.0.2-hotfix.1)cd {project_dir}
git add -A
git commit -m "hotfix: v{HOTFIX_VERSION}"
git push {remote} {branch}
workflow_dispatch 手动触发push 事件自动触发ssh {user}@{host}
cd {project_dir}
docker compose pull
docker compose up -d
curl -s {verify_url}
正式发布和热更新均通过 GitHub Actions 构建。本地构建仅用于开发调试:
docker build -t {acr.image_url}:{VERSION} .
docker run -p {port}:{port} {acr.image_url}:{VERSION}
BUILD_VERSION 构建参数传入 Dockerfilename: Docker
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
version:
description: 'Build version'
required: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Login to ACR
uses: docker/login-action@v3
with:
registry: ${{ secrets.ACR_REGISTRY }}
username: ${{ secrets.ACR_USERNAME }}
password: ${{ secrets.ACR_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
${{ secrets.ACR_IMAGE }}:latest
${{ secrets.ACR_IMAGE }}:v${{ inputs.version || github.ref_name }}
| 变量名 | 本地开发 | 正式发布 |
|---|---|---|
ACR_IMAGE | 空 | {registry}/{namespace}/{repo}:latest |
ACR_REGISTRY | 空 | 阿里云 ACR 地址 |
ACR_NAMESPACE | 空 | 命名空间 |
ACR_REPO | 空 | 镜像名 |
ACR_USERNAME | 空 | ACR token 用户名 |
ACR_PASSWORD | 空 | ACR token 密码 |
data/VERSIONS.json 的 current.version、GitHub tag 必须一致current 段,追加当前版本 changelog 条目,不动历史记录-hotfix.N 后缀