Some checks failed
codecov / upload (push) Failing after 13m59s
CodeQL / Analyze (push) Failing after 1s
Testing / vet-proto (push) Failing after 1s
Testing / tests (arm, latest) (push) Waiting to run
Testing / extras (latest) (push) Failing after 1s
Testing / static checks (latest-1) (push) Failing after 1s
Testing / tests (-race, latest) (push) Failing after 1s
Testing / tests (i386, latest) (push) Failing after 1s
Testing / tests (latest) (push) Failing after 1s
Testing / tests (latest-1) (push) Failing after 1s
Lock Threads / lock (push) Failing after 1s
govulncheck / govulncheck (.) (push) Failing after 1s
govulncheck / govulncheck (./cmd/protoc-gen-go-grpc) (push) Failing after 1s
govulncheck / govulncheck (./gcp/observability) (push) Failing after 1s
govulncheck / govulncheck (./security/advancedtls) (push) Failing after 1s
govulncheck / govulncheck (./stats/opencensus) (push) Failing after 1s
Stale bot / stale (push) Failing after 1s
136 lines
3.8 KiB
YAML
136 lines
3.8 KiB
YAML
name: Testing
|
|
|
|
# Trigger on pushes, PRs (excluding documentation changes), and nightly.
|
|
on:
|
|
push:
|
|
pull_request:
|
|
schedule:
|
|
- cron: 0 0 * * * # daily at 00:00
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
# Always force the use of Go modules
|
|
env:
|
|
GO111MODULE: on
|
|
|
|
jobs:
|
|
# Check generated protos match their source repos (optional for PRs).
|
|
vet-proto:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v4
|
|
|
|
# Setup the environment.
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.26'
|
|
cache-dependency-path: "**/go.sum"
|
|
|
|
# Run the vet-proto checks.
|
|
- name: vet-proto
|
|
run: ./scripts/vet-proto.sh -install && ./scripts/vet-proto.sh
|
|
|
|
# Run the main gRPC-Go tests.
|
|
tests:
|
|
name: ${{ matrix.display_name }}
|
|
|
|
# Use the matrix variable to set the runner, with 'ubuntu-latest' as the
|
|
# default.
|
|
runs-on: ${{ matrix.runner || 'ubuntu-latest' }}
|
|
timeout-minutes: 20
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- type: vet
|
|
goversion: '1.25'
|
|
display_name: 'static checks (latest-1)'
|
|
|
|
- type: extras
|
|
goversion: '1.26'
|
|
display_name: 'extras (latest)'
|
|
|
|
- type: tests
|
|
goversion: '1.26'
|
|
display_name: 'tests (latest)'
|
|
|
|
- type: tests
|
|
goversion: '1.26'
|
|
testflags: -race
|
|
display_name: 'tests (-race, latest)'
|
|
|
|
- type: tests
|
|
goversion: '1.26'
|
|
goarch: 386
|
|
display_name: 'tests (i386, latest)'
|
|
|
|
- type: tests
|
|
goversion: '1.26'
|
|
goarch: arm64
|
|
runner: ubuntu-24.04-arm
|
|
display_name: 'tests (arm, latest)'
|
|
|
|
- type: tests
|
|
goversion: '1.25'
|
|
display_name: 'tests (latest-1)'
|
|
|
|
steps:
|
|
# Setup the environment.
|
|
- name: Setup GOARCH
|
|
if: matrix.goarch != ''
|
|
run: echo "GOARCH=${{ matrix.goarch }}" >> $GITHUB_ENV
|
|
|
|
- name: Setup GRPC environment
|
|
if: matrix.grpcenv != ''
|
|
run: echo "${{ matrix.grpcenv }}" >> $GITHUB_ENV
|
|
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: ${{ matrix.goversion }}
|
|
cache-dependency-path: "**/*go.sum"
|
|
|
|
# Only run vet for 'vet' runs.
|
|
- name: Run vet.sh
|
|
if: matrix.type == 'vet'
|
|
run: ./scripts/vet.sh -install && ./scripts/vet.sh
|
|
|
|
# Main tests run for everything except when testing "extras"
|
|
# (where we run a reduced set of tests).
|
|
- name: Run tests
|
|
if: matrix.type == 'tests'
|
|
run: |
|
|
go version
|
|
go test ${{ matrix.testflags }} -cpu 1,4 -timeout 7m ./...
|
|
cd "${GITHUB_WORKSPACE}"
|
|
for MOD_FILE in $(find . -name 'go.mod' | grep -Ev '^\./go\.mod'); do
|
|
pushd "$(dirname ${MOD_FILE})"
|
|
go test ${{ matrix.testflags }} -cpu 1,4 -timeout 2m ./...
|
|
popd
|
|
done
|
|
|
|
# Non-core gRPC tests (examples, interop, etc)
|
|
- name: Run extras tests
|
|
if: matrix.type == 'extras'
|
|
run: |
|
|
export TERM=${TERM:-xterm}
|
|
go version
|
|
echo -e "\n-- Running Examples --"
|
|
examples/examples_test.sh
|
|
echo -e "\n-- Running AdvancedTLS Examples --"
|
|
security/advancedtls/examples/examples_test.sh
|
|
echo -e "\n-- Running Interop Test --"
|
|
interop/interop_test.sh
|
|
echo -e "\n-- Running xDS E2E Test --"
|
|
internal/xds/test/e2e/run.sh
|
|
echo -e "\n-- Running protoc-gen-go-grpc test --"
|
|
./scripts/vet-proto.sh -install
|
|
cmd/protoc-gen-go-grpc/protoc-gen-go-grpc_test.sh
|