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

GitHub Workspace路径异常致Terraform在Azure部署中无配置

问题解决方法

核心问题:ROOT_PATH的定义错误

你当前给ROOT_PATH加了单引号,导致GitHub Actions无法正确解析${{ github.workspace }}变量,最终生成的路径是带变量占位符的无效路径,自然找不到Terraform配置文件。

修复步骤

1. 修正ROOT_PATH的定义

去掉环境变量值的单引号,让变量正常解析:

env:
      TF_VERSION: latest
      ARM_CLIENT_ID: ${{ secrets.CLIENT_ID }}
      ARM_CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
      ARM_SUBSCRIPTION_ID: ${{ secrets.SUBSCRIPTION_ID }}
      ARM_TENANT_ID: ${{ secrets.TENANT_ID }}
      ROOT_PATH: ${{ github.workspace }}/src/terraform  # 去掉单引号

或者更简洁,直接用相对路径(因为checkout步骤后默认工作目录就是github.workspace):

ROOT_PATH: src/terraform

2. 验证目录结构

在Directory Path步骤里添加命令,确认目标目录存在且有.tf文件:

- name: Directory Path
  run: |
    ls -la
    ls -la src/terraform  # 新增这行,检查目标目录内容

3. 替换废弃的Terraform Action

你用的hashicorp/terraform-github-actions@master已经被官方废弃,建议改用官方维护的hashicorp/setup-terraform,用法更灵活且可靠,调整后的步骤示例:

jobs:
  terraform:
    name: 'Terraform'
    runs-on: ubuntu-latest
    environment: dev

    defaults:
      run:
        shell: bash
        working-directory: ${{ env.ROOT_PATH }}  # 全局设置工作目录,避免每个步骤重复写

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Setup Terraform
        uses: hashicorp/setup-terraform@v2
        with:
          terraform_version: ${{ env.TF_VERSION }}

      - name: Terraform Init
        run: terraform init
        env: 
          TF_VAR_env: 'dev'
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Terraform Format
        run: terraform fmt -check

      - name: Terraform Plan
        run: terraform plan

额外注意事项

  • 确保仓库里src/terraform目录下确实存在.tf配置文件,没有路径拼写错误(Linux环境下路径是大小写敏感的)。
  • 检查GitHub Secrets里的Azure凭据是否正确配置,避免因权限问题导致的间接错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:41:32