# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # --- name: Special tests on: # yamllint disable-line rule:truthy workflow_call: inputs: runners: description: "The array of labels (in json form) determining runners." required: true type: string platform: description: "Platform for the build - 'linux/amd64' or 'linux/arm64'" required: true type: string default-branch: description: "The default branch for the repository" required: true type: string core-test-types-list-as-strings-in-json: description: "The list of core test types to run separated by spaces" required: true type: string providers-test-types-list-as-strings-in-json: description: "The list of providers test types to run separated by spaces" required: true type: string run-coverage: description: "Whether to run coverage or not (true/false)" required: true type: string default-python-version: description: "Which version of python should be used by default" required: true type: string excluded-providers-as-string: description: "Excluded providers (per Python version) as json string" required: true type: string python-versions: description: "The list of python versions (stringified JSON array) to run the tests on." required: true type: string default-postgres-version: description: "The default version of the postgres to use" required: true type: string canary-run: description: "Whether to run canary tests or not (true/false)" required: true type: string upgrade-to-newer-dependencies: description: "Whether to upgrade to newer dependencies or not (true/false)" required: true type: string include-success-outputs: description: "Whether to include success outputs or not (true/false)" required: true type: string debug-resources: description: "Whether to debug resources or not (true/false)" required: true type: string skip-providers-tests: description: "Whether to skip providers tests or not (true/false)" required: true type: string use-uv: description: "Whether to use uv or not (true/false)" required: true type: string permissions: contents: read jobs: tests-min-sqlalchemy: name: "Min SQLAlchemy test: core" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} downgrade-sqlalchemy: "true" test-name: "MinSQLAlchemy-Postgres" test-scope: "DB" test-group: "core" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.core-test-types-list-as-strings-in-json }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-min-sqlalchemy-providers: name: "Min SQLAlchemy test: providers" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} downgrade-sqlalchemy: "true" test-name: "MinSQLAlchemy-Postgres" test-scope: "DB" test-group: "providers" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.providers-test-types-list-as-strings-in-json }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-latest-sqlalchemy: name: "Latest SQLAlchemy test: core" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} upgrade-sqlalchemy: "true" test-name: "LatestSQLAlchemy-Postgres" test-scope: "DB" test-group: "core" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.core-test-types-list-as-strings-in-json }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-latest-sqlalchemy-providers: name: "Latest SQLAlchemy test: providers" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} upgrade-sqlalchemy: "true" test-name: "LatestSQLAlchemy-Postgres" test-scope: "DB" test-group: "providers" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.providers-test-types-list-as-strings-in-json }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-boto-core: name: "Latest Boto test: core" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} upgrade-boto: "true" test-name: "LatestBoto-Postgres" test-scope: "All" test-group: "core" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.core-test-types-list-as-strings-in-json }} include-success-outputs: ${{ inputs.include-success-outputs }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-boto-providers: name: "Latest Boto test: providers" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} upgrade-boto: "true" test-name: "LatestBoto-Postgres" test-scope: "All" test-group: "providers" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.providers-test-types-list-as-strings-in-json }} include-success-outputs: ${{ inputs.include-success-outputs }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-pendulum-2-core: name: "Pendulum2 test: core" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} downgrade-pendulum: "true" test-name: "Pendulum2-Postgres" test-scope: "All" test-group: "core" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.core-test-types-list-as-strings-in-json }} include-success-outputs: ${{ inputs.include-success-outputs }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-pendulum-2-providers: name: "Pendulum2 test: providers" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} downgrade-pendulum: "true" test-name: "Pendulum2-Postgres" test-scope: "All" test-group: "providers" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.providers-test-types-list-as-strings-in-json }} include-success-outputs: ${{ inputs.include-success-outputs }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-quarantined-core: name: "Quarantined test: core" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} test-name: "Postgres" test-scope: "Quarantined" test-group: "core" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.core-test-types-list-as-strings-in-json }} include-success-outputs: ${{ inputs.include-success-outputs }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-quarantined-providers: name: "Quarantined test: providers" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} test-name: "Postgres" test-scope: "Quarantined" test-group: "providers" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.providers-test-types-list-as-strings-in-json }} include-success-outputs: ${{ inputs.include-success-outputs }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }} tests-system-core: name: "System test: ${{ matrix.test-group }}" uses: ./.github/workflows/run-unit-tests.yml permissions: contents: read packages: read with: runners: ${{ inputs.runners }} platform: ${{ inputs.platform }} test-name: "SystemTest" test-scope: "System" test-group: "core" backend: "postgres" python-versions: "['${{ inputs.default-python-version }}']" backend-versions: "['${{ inputs.default-postgres-version }}']" excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }} excludes: "[]" test-types-as-strings-in-json: ${{ inputs.core-test-types-list-as-strings-in-json }} include-success-outputs: ${{ inputs.include-success-outputs }} run-coverage: ${{ inputs.run-coverage }} debug-resources: ${{ inputs.debug-resources }} skip-providers-tests: ${{ inputs.skip-providers-tests }} use-uv: ${{ inputs.use-uv }} default-branch: ${{ inputs.default-branch }}