fix(ci): use github.ref_name for tag detection (gitea.ref not available in runner) #1640

Merged
xiaoxia merged 1 commits from fix/ci-ref-name-tag-detection into develop 2026-09-03 13:22:51 +08:00
Owner

问题

PR #1639github.ref 改为 gitea.ref,但 runner 日志显示 gitea.ref 同样为空,Build Production 仍然被 skip。

Runner 日志:

expression `startsWith(gitea.ref, refs/tags/v) || ...` evaluated to false

根因

Gitea Actions act runner v0.6.1 对 tag push 事件不设置 github.ref 也不设置 gitea.ref,但 github.ref_name 是可用的(在 runner 日志中可见其被正确引用)。

修复

startsWith(gitea.ref, refs/tags/v) 改为 startsWith(github.ref_name, v)

tag push 时 github.ref_name = v0.1.135(不含 refs/tags/ 前缀),所以用 startsWith(..., v) 即可匹配。

## 问题 PR #1639 将 `github.ref` 改为 `gitea.ref`,但 runner 日志显示 `gitea.ref` 同样为空,Build Production 仍然被 skip。 Runner 日志: ``` expression `startsWith(gitea.ref, refs/tags/v) || ...` evaluated to false ``` ## 根因 Gitea Actions act runner v0.6.1 对 tag push 事件不设置 `github.ref` 也不设置 `gitea.ref`,但 `github.ref_name` 是可用的(在 runner 日志中可见其被正确引用)。 ## 修复 将 `startsWith(gitea.ref, refs/tags/v)` 改为 `startsWith(github.ref_name, v)`。 tag push 时 `github.ref_name` = `v0.1.135`(不含 `refs/tags/` 前缀),所以用 `startsWith(..., v)` 即可匹配。
xiaoxia added 1 commit 2026-09-03 13:11:29 +08:00
fix(ci): use github.ref_name instead of gitea.ref for tag detection
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m14s
AI Code Review / AI Code Review (pull_request) Failing after 1m27s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 23s
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m52s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 30s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 2m5s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m20s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 3m31s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m19s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 7m35s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 8m57s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 6s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 16s
7da3e9ce47
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:是
  • 阻塞级问题数量:1 个

📊 审查概览

  • 整体评价:需修改
  • 建议级问题数量:1 个

🔴 阻塞级问题(必须修复)

  1. [.gitea/workflows/ci-pipeline.yml: 1465, 1615, 1747] 条件判断逻辑变更导致分支误触发
    • 问题类型:逻辑bug
    • 问题描述:原逻辑 startsWith(gitea.ref, 'refs/tags/v') 明确限定了引用必须以 refs/tags/v 开头,即只匹配以 v 开头的 Tag。修改后使用 github.ref_name(短引用名)并仅判断是否以 v 开头,丢失了对引用类型的校验。这会导致名为 verify-fixversion-update 等以 v 开头的分支也会触发生产构建和部署,造成严重的误操作和资源浪费。
    • 修改建议:应增加对引用类型的判断,例如恢复使用 startsWith(github.ref, 'refs/tags/v')(使用完整引用),或修改为 (startsWith(github.ref_name, 'v') && github.ref_type == 'tag')

💡 改进建议(不阻塞合并)

  1. [.gitea/workflows/ci-pipeline.yml: 全局] 上下文变量混用风险
    • 具体内容:文件位于 .gitea/workflows 目录下,但代码中混用了 gitea(如 concurrency.group 中)和 github(如 if 条件中)上下文变量。虽然 Gitea Actions 兼容 GitHub 语法,但建议统一使用 gitea 上下文变量(如 gitea.ref_name, gitea.event_name)以确保在 Gitea 环境下的最佳兼容性和明确性,除非该工作流需要同时在 GitHub 上运行。

良好实践


🤖 由 AI 代码审查机器人自动生成 | 2026-09-03 05:12:55 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:是 - 阻塞级问题数量:1 个 ### 📊 审查概览 - 整体评价:需修改 - 建议级问题数量:1 个 ### 🔴 阻塞级问题(必须修复) 1. **[.gitea/workflows/ci-pipeline.yml: 1465, 1615, 1747] 条件判断逻辑变更导致分支误触发** - 问题类型:逻辑bug - 问题描述:原逻辑 `startsWith(gitea.ref, 'refs/tags/v')` 明确限定了引用必须以 `refs/tags/v` 开头,即只匹配以 `v` 开头的 Tag。修改后使用 `github.ref_name`(短引用名)并仅判断是否以 `v` 开头,丢失了对引用类型的校验。这会导致名为 `verify-fix`、`version-update` 等以 `v` 开头的分支也会触发生产构建和部署,造成严重的误操作和资源浪费。 - 修改建议:应增加对引用类型的判断,例如恢复使用 `startsWith(github.ref, 'refs/tags/v')`(使用完整引用),或修改为 `(startsWith(github.ref_name, 'v') && github.ref_type == 'tag')`。 ### 💡 改进建议(不阻塞合并) 1. **[.gitea/workflows/ci-pipeline.yml: 全局] 上下文变量混用风险** - 具体内容:文件位于 `.gitea/workflows` 目录下,但代码中混用了 `gitea`(如 `concurrency.group` 中)和 `github`(如 `if` 条件中)上下文变量。虽然 Gitea Actions 兼容 GitHub 语法,但建议统一使用 `gitea` 上下文变量(如 `gitea.ref_name`, `gitea.event_name`)以确保在 Gitea 环境下的最佳兼容性和明确性,除非该工作流需要同时在 GitHub 上运行。 ### ✅ 良好实践 无 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-09-03 05:12:55 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->

🚀 预览环境已部署

项目 详情
PR号 #1640
预览链接 https://pr-1640.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1640 | | 预览链接 | [https://pr-1640.preview.xiaoxiajianji.com](https://pr-1640.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia merged commit 4290f7d19f into develop 2026-09-03 13:22:51 +08:00
xiaoxia deleted branch fix/ci-ref-name-tag-detection 2026-09-03 13:22:51 +08:00

🗑️ 预览环境已清理

PR #1640 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1640 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.