instruction: Create a GitHub Actions workflow for CI/CD automation with automated testing
output: ## equivalence-test-diff.yml
  
  **Repository:** hashicorp/terraform
  **File Type:** Github Workflow
  **Purpose:** Production configuration from hashicorp project
  
  ```yaml
  name: equivalence-test-diff
  
  on:
    pull_request:
      types:
        - opened
        - synchronize
        - ready_for_review
        - reopened
  
  permissions:
    contents: read
    pull-requests: write
  
  env:
    GH_TOKEN: ${{ github.token }}
  
  jobs:
    equivalence-test-diff:
      name: "Equivalence Test Diff"
      runs-on: ubuntu-latest
  
      steps:
        - name: Fetch source code
          uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
  
        - name: Determine Go version
          id: go
          uses: ./.github/actions/go-version
  
        - name: Install Go toolchain
          uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.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
          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
          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 }})."
  
  ```
  
  This GitHub Actions workflow demonstrates production CI/CD practices including automated testing, building, and deployment.