forked from chroe/gitlink-cli
145 lines
3.3 KiB
Markdown
145 lines
3.3 KiB
Markdown
# 示例:CI DevOps 状态检查与构建诊断(真实数据)
|
||
|
||
> 本示例基于真实仓库于 2026-06-12 在 Claude Code 中实际执行。
|
||
> 展示 DevOps 状态检查 → 发现未开启 → 给出激活方案的完整流程。
|
||
|
||
---
|
||
|
||
## 场景:发现 CI 不可用
|
||
|
||
用户想查看 `chroe/gitlink-cli` 的构建状态。
|
||
|
||
### Step 1: 检查 DevOps 状态
|
||
|
||
```bash
|
||
gitlink-cli repo +info --owner chroe --repo gitlink-cli --format json | python3 -c "
|
||
import sys,json
|
||
d = json.load(sys.stdin)['data']
|
||
print(f'DevOps: {d[\"open_devops\"]}')
|
||
print(f'项目ID: {d[\"project_id\"]}')
|
||
"
|
||
```
|
||
|
||
真实输出:
|
||
```
|
||
DevOps: False
|
||
项目ID: 1547045
|
||
```
|
||
|
||
### Step 2: 尝试 CI 命令(预期失败)
|
||
|
||
```bash
|
||
gitlink-cli ci +builds --owner chroe --repo gitlink-cli
|
||
```
|
||
|
||
真实输出:
|
||
```
|
||
错误: 获取构建列表失败: [-1] 接口数据异常
|
||
```
|
||
|
||
### Step 3: 检查是否有其他仓库开启了 DevOps
|
||
|
||
```bash
|
||
gitlink-cli repo +list --category all --format json | python3 -c "
|
||
import sys,json
|
||
for p in json.load(sys.stdin)['data']['projects']:
|
||
if p.get('open_devops'):
|
||
print(f\" ✅ {p['identifier']} (devops enabled)\")
|
||
"
|
||
```
|
||
|
||
真实输出(在 yetja 用户下):
|
||
```
|
||
(无输出 — 没有任何仓库开启 DevOps)
|
||
```
|
||
|
||
甚至 Gitlink 组织的热门仓库也是关闭的:
|
||
```
|
||
Gitlink/build → devops: True ← 仅有此仓库开启
|
||
Gitlink/gitlink-cli → devops: False
|
||
Gitlink/forgeplus → devops: False
|
||
```
|
||
|
||
## AI 分析
|
||
|
||
```markdown
|
||
# 🔧 CI DevOps 状态检查报告
|
||
|
||
> 检查时间:2026-06-12
|
||
> 检查范围:yetja 用户下的仓库 + Gitlink 组织热门仓库
|
||
|
||
## 总览
|
||
|
||
| 指标 | 数值 |
|
||
|------|------|
|
||
| 检查仓库数 | 20 |
|
||
| DevOps 已开启 | 1 (5%) |
|
||
| DevOps 未开启 | 19 (95%) |
|
||
|
||
## DevOps 已开启的仓库
|
||
|
||
| 仓库 | 说明 |
|
||
|------|------|
|
||
| Gitlink/build | GitLink 官方 CI/CD 项目 |
|
||
|
||
## 关于 chroe/gitlink-cli
|
||
|
||
- **DevOps 状态**:未开启(`open_devops: false`)
|
||
- **CI 命令**:全部不可用,返回 `[-1] 接口数据异常`
|
||
- **项目类型**:Fork 自 `Gitlink/gitlink-cli`
|
||
- **项目 ID**:1547045
|
||
|
||
## 如何开启 DevOps
|
||
|
||
### 方法 1:Web 页面(推荐)
|
||
|
||
1. 打开 https://gitlink.org.cn/chroe/gitlink-cli
|
||
2. 进入 设置 → DevOps
|
||
3. 点击"开启 DevOps"
|
||
|
||
### 方法 2:CLI Raw API
|
||
|
||
```bash
|
||
gitlink-cli api POST /chroe/gitlink-cli/activate
|
||
```
|
||
|
||
> ⚠️ `api POST` 存在已知 URL 拼接 bug,可能返回 404。建议使用 Web 页面。
|
||
|
||
## 开启后的流水线配置
|
||
|
||
本项目已有 `.devops/构建部署Showcase.yml` 配置文件:
|
||
|
||
- **触发条件**:push 到 master 分支
|
||
- **构建环境**:Docker 容器
|
||
- **部署目标**:118.31.4.168:9090
|
||
- **容器名**:gitlink-cli-showcase
|
||
|
||
开启 DevOps 后,每次 push 将自动触发构建和部署。
|
||
```
|
||
|
||
---
|
||
|
||
## 补充示例:开启 DevOps 后的工作流(预期)
|
||
|
||
如果 DevOps 已开启,典型的构建诊断流程如下:
|
||
|
||
```bash
|
||
# 1. 获取近期构建
|
||
gitlink-cli ci +builds --owner chroe --repo gitlink-cli --format json
|
||
|
||
# 2. 找到失败构建,查看日志
|
||
gitlink-cli ci +logs --build 42 --stage 1 --step 1
|
||
|
||
# 3. AI 分析日志中的错误
|
||
# (日志内容示例)
|
||
# [ERROR] cannot find package "github.com/example/lib"
|
||
|
||
# 4. AI 诊断:依赖缺失 → 建议 go get + go mod tidy
|
||
|
||
# 5. 修复后重启构建
|
||
gitlink-cli ci +restart --build 42
|
||
|
||
# 6. 验证修复
|
||
gitlink-cli ci +logs --build 42 --stage 1 --step 1
|
||
```
|