簡體   English   中英

GitHub 操作中的 Terratest 失敗

[英]Terratest in GitHub Action fails

當使用斷言在本地運行 terratest 時,它按預期工作。 但是,當嘗試通過 github 操作運行它時,出現以下錯誤(刪除斷言已按預期運行 terratest):

TestTerraform 2022-07-27T08:34:49Z logger.go:66: ::set-output name=exitcode::0
    output.go:19: 
            Error Trace:    output.go:19
                                        terraform_test.go:24
            Error:          Received unexpected error:
                            invalid character 'c' looking for beginning of value
            Test:           TestTerraform

terratest 文件如下所示:

package test

import (
    "github.com/gruntwork-io/terratest/modules/terraform"
    "github.com/stretchr/testify/assert"
    "testing"
)

func TestTerraform(t *testing.T) {

    iam_arn_expected := "arn:aws:iam::xxx:role/terratest_iam"
    terraformOptions := terraform.WithDefaultRetryableErrors(t, &terraform.Options{
        TerraformDir: "../examples/simple",
        Vars: map[string]interface{}{
            "iam_name": "terratest_iam",
            "region":   "eu-west-2",
        },
    })

    defer terraform.Destroy(t, terraformOptions)

    terraform.InitAndApply(t, terraformOptions)

    iam_arn := terraform.Output(t, terraformOptions, "iam_arn")

    assert.Equal(t, iam_arn_expected, iam_arn)
}

github 動作看起來像:

jobs:
  terratest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-go@v3.2.1
      - name: Install tfenv
        run: |
          git clone https://github.com/tfutils/tfenv.git ~/.tfenv
          echo "$HOME/.tfenv/bin" >> $GITHUB_PATH
      - name: Install Terraform
        working-directory: .
        run: |
          pwd
          tfenv install
          terraform --version
      - name: Download Go Modules
        working-directory: test
        run: go mod download
      - name: Run Terratest
        working-directory: test
        run: go test -v
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_PLAYGROUND_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_PLAYGROUND_KEY }}

解決方案是使用關閉 Terraform 包裝器的 HashiCorp setup-terraform操作來代替“安裝 Terraform”步驟。

  - name: Setup Terraform
    uses: hashicorp/setup-terraform@v2
    with:
      terraform_version: 1.3.6
      terraform_wrapper: false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM