相同Github Workflow部署突然失败:setup-gcloud执行报错求助
解决方案
核心原因
你使用的google-github-actions/setup-gcloud@v0是老旧版本,它安装的gcloud SDK 270.0.0仅兼容Python 2.7,但当前Github Actions的Ubuntu Runner默认已移除Python 2.7,而Python 3中collections.MutableMapping已迁移至collections.abc.MutableMapping,因此触发加载失败错误。同时该版本还存在service_account_key参数弃用的问题。
推荐解决方案:升级至最新版动作并改用官方认证方式
直接替换旧的setup-gcloud步骤,使用官方推荐的认证+初始化流程,新版本会安装兼容Python 3的gcloud SDK:
# 替换原有的setup-gcloud步骤 - name: 认证Google Cloud uses: google-github-actions/auth@v2 with: credentials_json: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }} - name: 初始化gcloud环境 uses: google-github-actions/setup-gcloud@v2
此方案同时解决了弃用警告和Python版本兼容问题,是长期维护的最优选择。
临时 workaround(不推荐)
若暂时无法升级动作,可在runner中手动安装Python 2.7并指定gcloud使用该版本:
# 在setup-gcloud步骤前添加 - name: 安装Python 2.7 run: sudo apt-get update && sudo apt-get install -y python2.7 - name: 设置gcloud使用Python 2.7 run: echo "CLOUDSDK_PYTHON=/usr/bin/python2.7" >> $GITHUB_ENV # 保留原有的setup-gcloud步骤 - name: Set up gcloud uses: google-github-actions/setup-gcloud@v0 with: service_account_key: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
注意:Python 2.7已停止维护,后续Github Runner可能彻底移除对它的支持,此方案仅作临时过渡使用。
内容的提问来源于stack exchange,提问作者user3665224
相关产品推荐
相关产品推荐

