name: "Setup Go" description: | Sets up the Go environment for tests, builds, etc. inputs: version: description: "The Go version to use." default: "1.25.7" use-preinstalled-go: description: "Whether to use preinstalled Go." default: "false" use-cache: description: "Whether to use the cache." default: "true" runs: using: "composite" steps: - name: Setup Go uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version: ${{ inputs.use-preinstalled-go == 'false' && inputs.version || '' }} cache: ${{ inputs.use-cache }} - name: Install gotestsum shell: bash run: ./.github/scripts/retry.sh -- go install gotest.tools/gotestsum@0d9599e513d70e5792bb9334869f82f6e8b53d4d # main as of 2025-05-15 - name: Install mtimehash shell: bash run: ./.github/scripts/retry.sh -- go install github.com/slsyy/mtimehash/cmd/mtimehash@a6b5da4ed2c4a40e7b805534b004e9fde7b53ce0 # v1.0.0 # It isn't necessary that we ever do this, but it helps # separate the "setup" from the "run" times. - name: go mod download shell: bash run: ./.github/scripts/retry.sh -- go mod download -x