opentofu / setup-opentofu

Mozilla Public License 2.0
90 stars 10 forks source link

Does not honor -detailed-exitcode #42

Open madchap opened 2 days ago

madchap commented 2 days ago

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
madchap commented 2 days ago

Workaround: Comment out the action, and install tofu directly.

      - name: Install Tofu
        run: |
          mkdir -p ${{ github.workspace }}/.local/bin && cd ${{ github.workspace }}/.local/bin
          wget -q -O tofu.tar.gz https://github.com/opentofu/opentofu/releases/download/v${{ env.tofu_version }}/tofu_${{ env.tofu_version }}_linux_amd64.tar.gz
          tar xf tofu.tar.gz
          chmod +x tofu
          tofu -v
abstractionfactory commented 2 days ago

Hello and thank you for this issue! The core team regularly reviews new issues and discusses them, but this can take a little time. Please bear with us while we get to your issue. If you're interested, the contribution guide has a section about the decision-making process.