name: Tests on: pull_request: types: [opened, reopened, synchronize] jobs: check-changes: runs-on: ubuntu-latest outputs: has_go_changes: ${{ steps.check.outputs.has_go_changes }} steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 - name: Check for Go changes id: check run: | if git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -E '\.go$|go\.(mod|sum)$'; then echo "has_go_changes=true" >> $GITHUB_OUTPUT else echo "has_go_changes=false" >> $GITHUB_OUTPUT fi tests: runs-on: ubuntu-latest needs: check-changes if: needs.check-changes.outputs.has_go_changes == 'true' steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Go uses: actions/setup-go@v4 with: go-version: 1.25 - name: Run tests run: go test -v ./...