Skip to content

Does not honor -detailed-exitcode #42

@madchap

Description

@madchap

Hi,

I have this GHA causing me grief... for brevity, the pieces that I believe matter.

The problem does not happen when I run locally with the same version of tofu and terragrunt (of course).

env:
  tofu_version: 1.8.5
  tg_version: 0.69.1

I install the tofu action with the latest version.

      - name: Setup Tofu with specified version on the runner
         uses: opentofu/setup-opentofu@v1
         with:
           tofu_version: ${{ env.tofu_version }}

yields success with

  with:
    tofu_version: 1.8.5
    cli_config_credentials_hostname: app.terraform.io
    tofu_wrapper: true

Below, if it returns 2, meaning a change, I want to capture that to apply later, for example.

      - name: TG plan
        id: plan
        if: matrix.folder != 'app_accounts'
        run: |
          cd ${{ github.workspace }}/infra/${{ matrix.folder }}
          terragrunt plan --terragrunt-non-interactive \
            -detailed-exitcode \
            -compact-warnings \
          || PLAN_STATUS=$?  # we want to continue even if the plan fails to detect changes
          [[ -z "$PLAN_STATUS" ]] && PLAN_STATUS=0
          echo "exit code for tofu plan is actually: $PLAN_STATUS"
          echo "plan_status=$PLAN_STATUS" >> $GITHUB_OUTPUT
          [[ $PLAN_STATUS -eq 2 ]] && exit 0 || exit $PLAN_STATUS

The exit code will always be 0 if run with tofu.

image

However, In that same GHA and all else being equals, if I just comment out the setup-opentofu stanza, terragrunt is forced to use terraform instead. And then, it works as expected.

image

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions