| name: ci | |
| on: | |
| push: | |
| branches: [ master, qa ] | |
| pull_request: | |
| branches: [ master, qa ] | |
| permissions: | |
| contents: read | |
| jobs: | |
| test-gomod: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| go-version: ['1.21.x', '1.22.x','1.24.x'] | |
| steps: | |
| - name: Update base image, intall Python3 | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y python3 | |
| export CLOUDSDK_PYTHON="python3" | |
| - name: Set up Go | |
| uses: actions/setup-go@v2 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Cache go modules | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cache/go-build | |
| ~/go/pkg/mod | |
| key: ${{ runner.os }}-${{ matrix.go-version }}-go-${{ hashFiles('**/go.sum') }} | |
| restore-keys: | | |
| ${{ runner.os }}-${{ matrix.go-version }}-go- | |
| - name: Set up Cloud SDK | |
| uses: google-github-actions/setup-gcloud@v0 | |
| - name: Install | |
| env: | |
| GO111MODULE: on | |
| run: | | |
| go get . | |
| gcloud components install app-engine-python app-engine-go cloud-datastore-emulator app-engine-python-extras --quiet | |
| - name: Test gomod | |
| env: | |
| GO111MODULE: on | |
| run: | | |
| export APPENGINE_DEV_APPSERVER=$(which dev_appserver.py) | |
| export CLOUDSDK_PYTHON="python3" | |
| go test -v -cover -race google.golang.org/appengine/... | |
| # TestAPICallAllocations doesn't run under race detector. | |
| go test -v -cover google.golang.org/appengine/internal/... -run TestAPICallAllocations |