| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 1 | name: go_tests |
| 2 | on: |
| 3 | workflow_call: |
| Josh Bleecher Snyder | 936ba62 | 2025-04-30 20:53:21 +0000 | [diff] [blame] | 4 | inputs: |
| 5 | ref: |
| 6 | description: "The git ref to checkout" |
| 7 | required: false |
| 8 | type: string |
| 9 | default: "" |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 10 | push: |
| 11 | branches-ignore: |
| Josh Bleecher Snyder | 93bb66a | 2025-04-30 16:29:05 -0700 | [diff] [blame] | 12 | - "queue-main-*" |
| 13 | - "queue-dev-*" |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 14 | pull_request: |
| 15 | jobs: |
| 16 | test: |
| Philip Zeyliger | 8a290e5 | 2025-06-15 20:59:58 -0700 | [diff] [blame] | 17 | runs-on: "linux-x64-ubuntu-latest-64-core" |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 18 | steps: |
| Josh Bleecher Snyder | 936ba62 | 2025-04-30 20:53:21 +0000 | [diff] [blame] | 19 | - uses: actions/checkout@v4 |
| 20 | with: |
| 21 | ref: ${{ inputs.ref }} |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 22 | |
| 23 | - uses: actions/setup-go@v5 |
| 24 | with: |
| 25 | go-version-file: "go.mod" |
| 26 | cache: true |
| 27 | |
| Josh Bleecher Snyder | 2a32f01 | 2025-06-05 19:40:07 -0700 | [diff] [blame] | 28 | - name: Cache Go 1.24.4 |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 29 | uses: actions/cache@v4 |
| 30 | with: |
| 31 | path: | |
| 32 | ~/.cache/go-build |
| Josh Bleecher Snyder | 2a32f01 | 2025-06-05 19:40:07 -0700 | [diff] [blame] | 33 | key: ${{ runner.os }}-go1.24.4-${{ hashFiles('**/go.sum') }} |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 34 | restore-keys: | |
| Josh Bleecher Snyder | 2a32f01 | 2025-06-05 19:40:07 -0700 | [diff] [blame] | 35 | ${{ runner.os }}-go1.24.4- |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 36 | |
| philip.zeyliger | 46be096 | 2025-06-14 17:51:15 +0000 | [diff] [blame] | 37 | - name: Optimize APT |
| 38 | run: ./.github/scripts/optimize-apt.sh |
| 39 | |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 40 | - name: Install tools |
| 41 | run: | |
| 42 | go install golang.org/x/tools/gopls@latest |
| Philip Zeyliger | 6c1f34f | 2025-04-23 19:33:03 -0700 | [diff] [blame] | 43 | go install gotest.tools/gotestsum@latest |
| Josh Bleecher Snyder | 833a0f8 | 2025-04-24 18:39:36 +0000 | [diff] [blame] | 44 | go install mvdan.cc/gofumpt@latest |
| 45 | go install golang.org/x/tools/cmd/goimports@latest |
| Philip Zeyliger | c013134 | 2025-06-13 21:07:08 -0700 | [diff] [blame] | 46 | # Empirically (by logging into runners with tmate), there are versions of Chromium/Chrome in /opt/google/chrome |
| Philip Zeyliger | a35de5f | 2025-06-14 12:00:48 -0700 | [diff] [blame] | 47 | # and /usr/local/share/chromium/chrome-linux, and /usr/bin/chromium links to the former. Therefore, we |
| 48 | # don't need to apt-get it separately. |
| 49 | |
| 50 | # If you wish to do some interactive debugging, the following is handy. It will print |
| 51 | # an SSH command that you can use to connect to the runner instance. |
| 52 | - name: tmate debugging (disabled) |
| 53 | if: false |
| 54 | run: | |
| 55 | sudo apt-get update && sudo apt-get install -y tmate |
| 56 | set -x |
| 57 | tmate -S /tmp/tmate.sock.${GITHUB_RUN_ID} new-session -d |
| 58 | tmate -S /tmp/tmate.sock.${GITHUB_RUN_ID} wait tmate-ready |
| 59 | tmate -S /tmp/tmate.sock.${GITHUB_RUN_ID} display -p '#{tmate_ssh}' |
| 60 | sleep 1800 |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 61 | |
| 62 | - name: Go generate |
| 63 | run: | |
| 64 | go generate ./... |
| Josh Bleecher Snyder | 88c61bd | 2025-04-30 13:40:34 -0700 | [diff] [blame] | 65 | # if go generate created a diff |
| 66 | if ! git diff --exit-code; then |
| 67 | echo "go generate created a diff" |
| 68 | git diff |
| 69 | exit 1 |
| 70 | fi |
| Earl Lee | 2e463fb | 2025-04-17 11:22:22 -0700 | [diff] [blame] | 71 | |
| 72 | - name: Run tests |
| 73 | run: | |
| Josh Bleecher Snyder | 923a3ba | 2025-05-05 15:27:13 -0700 | [diff] [blame] | 74 | GOEXPERIMENT=synctest gotestsum --format testname -- ./... |
| 75 | GOEXPERIMENT=synctest gotestsum --format testname -- -race ./... |