name: equivalence-test-diff on: pull_request: types: - opened - synchronize - ready_for_review - reopened permissions: contents: read pull-requests: write jobs: equivalence-test-diff: name: "Equivalence Test Diff" runs-on: ubuntu-latest steps: - name: Fetch source code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Determine Go version id: go uses: ./.github/actions/go-version - name: Install Go toolchain uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 with: go-version: ${{ steps.go.outputs.version }} cache-dependency-path: go.sum - name: Download testing framework shell: bash run: | ./.github/scripts/equivalence-test.sh download_equivalence_test_binary \ 0.5.0 \ ./bin/equivalence-tests \ linux \ amd64 - name: Build terraform shell: bash run: ./.github/scripts/equivalence-test.sh build_terraform_binary ./bin/terraform - name: Run equivalence tests id: equivalence-tests shell: bash {0} # we want to capture the exit code run: | ./bin/equivalence-tests diff \ --tests=testing/equivalence-tests/tests \ --goldens=testing/equivalence-tests/outputs \ --binary=$(pwd)/bin/terraform echo "exit-code=$?" >> "${GITHUB_OUTPUT}" - name: Equivalence tests failed if: steps.equivalence-tests.outputs.exit-code == 1 # 1 is the exit code for failure shell: bash env: GH_TOKEN: ${{ github.token }} run: | gh pr comment ${{ github.event.pull_request.number }} \ --body "The equivalence tests failed. Please investigate [here](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})." exit 1 # fail the job - name: Equivalence tests changed if: steps.equivalence-tests.outputs.exit-code == 2 # 2 is the exit code for changed shell: bash env: GH_TOKEN: ${{ github.token }} run: | gh pr comment ${{ github.event.pull_request.number }} \ --body "The equivalence tests will be updated. Please verify the changes [here](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})."