From 98b8cbc8395a3988e0220256f74e89fc2e37d1bc Mon Sep 17 00:00:00 2001 From: Sakthivel Subramanian Date: Mon, 27 Jul 2026 13:25:30 +0000 Subject: [PATCH] ci(sqlalchemy-spanner): add compliance tests against emulator GitHub Actions workflow --- ...nner-compliance-tests-against-emulator.yml | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/sqlalchemy-spanner-compliance-tests-against-emulator.yml diff --git a/.github/workflows/sqlalchemy-spanner-compliance-tests-against-emulator.yml b/.github/workflows/sqlalchemy-spanner-compliance-tests-against-emulator.yml new file mode 100644 index 000000000000..5965cd83997b --- /dev/null +++ b/.github/workflows/sqlalchemy-spanner-compliance-tests-against-emulator.yml @@ -0,0 +1,66 @@ +permissions: + contents: read + +on: + pull_request: + paths: + - 'packages/sqlalchemy-spanner/**' + - '.github/workflows/sqlalchemy-spanner-compliance-tests-against-emulator.yml' + push: + branches: + - main + paths: + - 'packages/sqlalchemy-spanner/**' + - '.github/workflows/sqlalchemy-spanner-compliance-tests-against-emulator.yml' + +defaults: + run: + working-directory: packages/sqlalchemy-spanner + +name: Run SQLAlchemy Spanner compliance tests against emulator +jobs: + check_changes: + runs-on: ubuntu-latest + outputs: + run_sqlalchemy_spanner: ${{ steps.filter.outputs.sqlalchemy_spanner }} + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false + - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + id: filter + with: + filters: | + sqlalchemy_spanner: + - 'packages/sqlalchemy-spanner/**' + - '.github/workflows/sqlalchemy-spanner-compliance-tests-against-emulator.yml' + + compliance-tests: + needs: check_changes + if: ${{ needs.check_changes.outputs.run_sqlalchemy_spanner == 'true' }} + runs-on: ubuntu-latest + + services: + emulator: + image: gcr.io/cloud-spanner-emulator/emulator:latest # zizmor: ignore[unpinned-images] + ports: + - 9010:9010 + - 9020:9020 + + steps: + - name: Checkout code + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false + - name: Set up Python 3.14 + uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6 + with: + python-version: "3.14" + - name: Install nox + run: python -m pip install nox + - name: Run nox compliance_test_20 + run: nox -s compliance_test_20 + env: + SPANNER_EMULATOR_HOST: localhost:9010 + GOOGLE_CLOUD_PROJECT: emulator-test-project + GOOGLE_CLOUD_TESTS_CREATE_SPANNER_INSTANCE: true