Files

368 lines
14 KiB
YAML

# 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 }}