1
0
mirror of synced 2025-12-19 18:14:56 -05:00

ci: make live and regression tests as slash commands (#61606)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Aaron ("AJ") Steers
2025-11-20 14:26:57 -08:00
committed by GitHub
parent 2f08d7789e
commit f7a8a3607e
5 changed files with 82 additions and 24 deletions

View File

@@ -18,6 +18,8 @@ As needed or by request, Airbyte Maintainers can execute the following slash com
- `/bump-version` - Bumps connector versions.
- `/run-connector-tests` - Runs connector tests.
- `/run-cat-tests` - Runs CAT tests.
- `/run-live-tests` - Runs live tests for the modified connector(s).
- `/run-regression-tests` - Runs regression tests for the modified connector(s).
- `/build-connector-images` - Builds and publishes a pre-release docker image for the modified connector(s).
If you have any questions, feel free to ask in the PR comments or join our [Slack community](https://airbytehq.slack.com/).

View File

@@ -22,6 +22,8 @@ Airbyte Maintainers (that's you!) can execute the following slash commands on yo
- You can specify a custom changelog by passing `changelog`. Example: `/bump-version changelog="My cool update"`
- Leaving the changelog arg blank will auto-populate the changelog from the PR title.
- `/run-cat-tests` - Runs legacy CAT tests (Connector Acceptance Tests)
- `/run-live-tests` - Runs live tests for the modified connector(s).
- `/run-regression-tests` - Runs regression tests for the modified connector(s).
- `/build-connector-images` - Builds and publishes a pre-release docker image for the modified connector(s).
- JVM connectors:
- `/update-connector-cdk-version connector=<CONNECTOR_NAME>` - Updates the specified connector to the latest CDK version.

View File

@@ -14,17 +14,44 @@ concurrency:
on:
workflow_dispatch:
inputs:
connector_name:
description: Connector name (e.g. source-faker)
required: true
# Global static-arg inputs for slash commands
repo:
description: "The repository name. Optional. Defaults to 'airbytehq/airbyte'."
required: false
default: "airbytehq/airbyte"
type: string
gitref:
description: "The git reference (branch or tag). Optional. Defaults to the default branch."
required: false
type: string
comment-id:
description: "The ID of the comment triggering the workflow. Optional."
required: false
type: number
pr:
description: "The pull request number, if applicable. Optional."
required: false
type: number
# Workflow-specific inputs
connector_filter:
description: >
Connector filter. Will be passed to the `airbyte-ci connectors` command.
To select all modified connectors, use '--modified'. To select specific connectors,
pass one or or more `--name` args, e.g. '--name=source-faker --name=source-hardcoded-records'.
default: "--modified"
connection_id:
description: ID of the connection to test; use "auto" to let the connection retriever choose a connection
required: true
pr_url:
description: URL of the PR containing the code change
required: true
description: >
Connection ID. ID of the connection to test; use "auto" to let the
connection retriever choose a connection.
default: "auto"
streams:
description: Streams to include in tests
description: >
(Optional) Streams. Which streams to include in tests.
If not set, these will be chosen automatically.
required: false
default: ""
type: string
should_read_with_state:
description: Whether to run tests against the read command with state
default: "true"
@@ -39,7 +66,7 @@ on:
type: boolean
connection_subset:
description: The subset of connections to select from.
required: true
default: "sandboxes"
type: choice
options:
- sandboxes
@@ -141,4 +168,4 @@ jobs:
github_token: ${{ secrets.GH_PAT_MAINTENANCE_OSS }}
s3_build_cache_access_key_id: ${{ secrets.SELF_RUNNER_AWS_ACCESS_KEY_ID }}
s3_build_cache_secret_key: ${{ secrets.SELF_RUNNER_AWS_SECRET_ACCESS_KEY }}
subcommand: connectors ${{ env.USE_LOCAL_CDK_FLAG }} --name ${{ github.event.inputs.connector_name }} test --only-step connector_live_tests --connector_live_tests.test-suite=live --connector_live_tests.connection-id=${{ github.event.inputs.connection_id }} --connector_live_tests.pr-url=${{ github.event.inputs.pr_url }} ${{ env.READ_WITH_STATE_FLAG }} ${{ env.DISABLE_PROXY_FLAG }} ${{ env.STREAM_PARAMS }} ${{ env.CONNECTION_SUBSET }}
subcommand: connectors ${{ env.USE_LOCAL_CDK_FLAG }} ${{ inputs.connector_filter }} test --only-step connector_live_tests --connector_live_tests.test-suite=live --connector_live_tests.connection-id=${{ github.event.inputs.connection_id }} --connector_live_tests.pr-url="https://github.com/airbytehq/airbyte/pull/${{ github.event.inputs.pr }}" ${{ env.READ_WITH_STATE_FLAG }} ${{ env.DISABLE_PROXY_FLAG }} ${{ env.STREAM_PARAMS }} ${{ env.CONNECTION_SUBSET }}

View File

@@ -14,18 +14,44 @@ concurrency:
on:
workflow_dispatch:
inputs:
connector_name:
description: Connector name (e.g. source-faker)
required: true
# Global static-arg inputs for slash commands
repo:
description: "The repository name"
required: false
default: "airbytehq/airbyte"
type: string
gitref:
description: "The git reference (branch or tag)"
required: false
type: string
comment-id:
description: "The ID of the comment triggering the workflow"
required: false
type: number
pr:
description: "The pull request number, if applicable"
required: false
type: number
# Workflow-specific inputs
connector_filter:
description: >
Connector filter. Will be passed to the `airbyte-ci connectors` command.
To select all modified connectors, use '--modified'. To select specific connectors,
pass one or or more `--name` args, e.g. '--name=source-faker --name=source-hardcoded-records'.
default: "--modified"
connection_id:
description: ID of the connection to test; use "auto" to let the connection retriever choose a connection
required: true
default: auto
pr_url:
description: URL of the PR containing the code change
required: true
description: >
Connection ID. ID of the connection to test; use "auto" to let the
connection retriever choose a connection.
default: "auto"
streams:
description: Streams to include in regression tests
description: >
(Optional) Streams. Which streams to include in tests.
If not set, these will be chosen automatically.
required: false
default: ""
type: string
should_read_with_state:
description: Whether to run tests against the read command with state
default: "true"
@@ -40,9 +66,8 @@ on:
type: boolean
connection_subset:
description: The subset of connections to select from.
required: true
default: "sandboxes"
type: choice
default: all
options:
- sandboxes
- all
@@ -164,4 +189,4 @@ jobs:
github_token: ${{ secrets.GH_PAT_MAINTENANCE_OSS }}
s3_build_cache_access_key_id: ${{ secrets.SELF_RUNNER_AWS_ACCESS_KEY_ID }}
s3_build_cache_secret_key: ${{ secrets.SELF_RUNNER_AWS_SECRET_ACCESS_KEY }}
subcommand: connectors ${{ env.USE_LOCAL_CDK_FLAG }} --name ${{ github.event.inputs.connector_name }} test --only-step connector_live_tests --connector_live_tests.test-suite=regression --connector_live_tests.connection-id=${{ github.event.inputs.connection_id }} --connector_live_tests.pr-url=${{ github.event.inputs.pr_url }} ${{ env.READ_WITH_STATE_FLAG }} ${{ env.DISABLE_PROXY_FLAG }} ${{ env.STREAM_PARAMS }} ${{ env.CONNECTION_SUBSET }} ${{ env.CONTROL_VERSION }} --global-status-check-context="Regression Tests" --global-status-check-description='Running regression tests'
subcommand: connectors ${{ env.USE_LOCAL_CDK_FLAG }} ${{ inputs.connector_filter }} test --only-step connector_live_tests --connector_live_tests.test-suite=regression --connector_live_tests.connection-id=${{ github.event.inputs.connection_id }} --connector_live_tests.pr-url="https://github.com/airbytehq/airbyte/pull/${{ github.event.inputs.pr }}" ${{ env.READ_WITH_STATE_FLAG }} ${{ env.DISABLE_PROXY_FLAG }} ${{ env.STREAM_PARAMS }} ${{ env.CONNECTION_SUBSET }} ${{ env.CONTROL_VERSION }} --global-status-check-context="Regression Tests" --global-status-check-description='Running regression tests'

View File

@@ -45,6 +45,8 @@ jobs:
publish-java-cdk
run-cat-tests
run-connector-tests
run-live-tests
run-regression-tests
test-performance
update-connector-cdk-version