You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Action故障排查:检测目录变更后执行helm cm-push失败

问题分析与修正方案

你的Github Action代码存在几处关键错误,导致无法正常执行变更检测与helm推送操作,具体问题和修复方案如下:

核心错误点

  • 变量名与步骤引用完全不匹配:
    • 第一步get-changed-charts里错误将输出变量名写成changed_chars(正确应为changed_charts)
    • 第二步推送时引用了不存在的步骤IDlist-changed(实际是get-changed-charts),还错误调用了不存在的changed_charts_core变量
  • 变更检测逻辑缺陷:
    • git show仅显示当前单条提交的变更,若推送多个提交会漏检;改用基于前后提交哈希的diff更准确
    • 将换行转成空格后,后续用IFS=$'\n'读取数组完全失效,应该保留换行格式输出
  • 依赖与版本问题:
    • actions/checkout@v2版本过旧,建议升级到v4
    • 缺少helm cm-push插件的安装步骤,直接执行会报错

修正后的完整代码

name: Push Changed Charts

on:
  push:
    branches: ["helm-autopush-charts-base"]

jobs:
  push-changed-charts:
    runs-on: self-hosted
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 2  # 拉取足够历史用于对比前后提交

      - name: Install Helm cm-push plugin
        run: helm plugin install https://github.com/chartmuseum/helm-push.git

      - name: Get changed charts
        id: get-changed-charts
        run: |
          # 检测charts-v2/core或platform下的变更目录
          CHANGED_CHARTS=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs dirname 2>/dev/null | grep -E 'charts-v2/(core|platform)' | awk -F'/' '{print $1"/"$2"/"$3}' | sort | uniq)
          # 用多行格式输出变量,避免空格分隔的问题
          printf "changed_charts<<EOF\n%s\nEOF" "$CHANGED_CHARTS" >> "$GITHUB_OUTPUT"
        
      - name: Push changed charts
        if: steps.get-changed-charts.outputs.changed_charts != ''
        run: |
          while IFS= read -r chart; do
            if [ -n "$chart" ]; then
              echo "Pushing chart: $chart"
              helm cm-push "./$chart" "${{ secrets.CHARTMUSEUM_URL }}/" -f
            fi
          done <<< "${{ steps.get-changed-charts.outputs.changed_charts }}"

额外说明

  • fetch-depth: 2确保能获取到推送前的历史提交,保证变更检测准确
  • 增加if条件判断,避免无变更时执行无效的推送步骤
  • 使用while read循环处理换行分隔的输出,比数组读取更稳定
  • 新增插件安装步骤,确保helm cm-push命令可用

内容的提问来源于stack exchange,提问作者cloudbud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:13:12