This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Experiment centralized testing | |
| on: | |
| pull_request: | |
| paths: | |
| - 'packages/gapic-generator/**' | |
| - '.github/workflows/prerelease-radar.yml' | |
| env: | |
| SYNTHTOOL_TEMPLATES: /home/runner/synthtool/synthtool/gcp/templates | |
| jobs: | |
| test-canary: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| canary: | |
| - google-cloud-redis | |
| - google-cloud-kms | |
| - google-cloud-speech | |
| - google-cloud-dialogflow | |
| - google-cloud-dataproc | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.14' | |
| allow-prereleases: true | |
| - name: Setup Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.26.x' | |
| - name: Install protoc | |
| uses: arduino/setup-protoc@v3 | |
| with: | |
| version: "25.3" | |
| - name: Install pandoc | |
| run: | | |
| mkdir -p /tmp/pandoc | |
| curl -fsSL --retry 5 -o /tmp/pandoc.tar.gz https://github.com/jgm/pandoc/releases/download/3.8.2/pandoc-3.8.2-linux-amd64.tar.gz | |
| tar -xvf /tmp/pandoc.tar.gz -C /tmp/pandoc --strip-components=1 | |
| echo "/tmp/pandoc/bin" >> $GITHUB_PATH | |
| - name: Clone Synthtool Templates | |
| run: | | |
| git clone --recurse-submodules --single-branch https://github.com/googleapis/synthtool.git /home/runner/synthtool | |
| - name: Install Librarian | |
| run: | | |
| version=$(sed -n 's/^version: *//p' librarian.yaml) | |
| go run "github.com/googleapis/librarian/cmd/librarian@${version}" install | |
| - name: Generate Canary via Librarian | |
| run: | | |
| version=$(sed -n 's/^version: *//p' librarian.yaml) | |
| go run "github.com/googleapis/librarian/cmd/librarian@${version}" generate ${{ matrix.canary }} | |
| - name: Install Nox | |
| run: | | |
| python -m pip install --upgrade pip setuptools wheel | |
| python -m pip install nox | |
| - name: Run Unit Tests | |
| run: | | |
| # Library check: Execute directly from the generated package directory | |
| cd packages/${{ matrix.canary }} | |
| nox -s unit-3.14 | |
| - name: Run lint and and mypy | |
| run: | | |
| # Library check: Execute directly from the generated package directory | |
| cd packages/${{ matrix.canary }} | |
| nox -s mypy-3.14 lint | |
| - name: Run Prerelease and Core Deps | |
| run: | | |
| cd packages/${{ matrix.canary }} | |
| # Point the Nox engine to the newly generated package directory | |
| nox -s prerelease_deps core_deps_from_source -- ../${{ matrix.canary }} |