name: Run tests on: push: branches: ['*'] pull_request: branches: ['*'] permissions: contents: read jobs: go: strategy: matrix: go-version: [1.24.x, 1.25.x] # oldest version that can build go mock and official supported go versions os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v4 with: go-version: ${{ matrix.go-version }} cache-dependency-path: '**/go.sum' - name: Vet and build run: | go vet ./... go build ./... - name: Install mockgen run: | go install go.uber.org/mock/mockgen - name: Run test script run: | ./ci/test.sh ./ci/check_panic_handling.sh - name: Run Go Tests run: | for i in $(find $PWD -name go.mod ! -path "$PWD/bazel/go.mod"); do pushd $(dirname $i) go test ./... popd done bazel: strategy: matrix: os: - macos - ubuntu runs-on: ${{ matrix.os }}-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Bazel uses: bazel-contrib/setup-bazel@0.10.0 with: # Avoid downloading Bazel every time. bazelisk-cache: true # Store build cache per workflow. disk-cache: ${{ github.workflow }} # Share repository cache between workflows. repository-cache: true - name: Run Bazel tests run: | cd bazel && bazel test //...