@@ -72,28 +72,23 @@ jobs:
72
72
cdk_extra : n/a
73
73
- connector : source-shopify
74
74
cdk_extra : n/a
75
- # Chargebee is being flaky:
76
- # - connector: source-chargebee
77
- # cdk_extra: n/a
78
- # This one is behind in CDK updates and can't be used as tests until it is updated:
79
- # - connector: destination-pinecone
80
- # cdk_extra: vector-db-based
81
75
- connector : source-google-drive
82
76
cdk_extra : file-based
83
77
- connector : destination-motherduck
84
78
cdk_extra : sql
85
- # ZenDesk currently failing (as of 2024-12-02)
86
- # TODO: Re-enable once fixed
87
- # - connector: source-zendesk-support
88
- # cdk_extra: n/a
89
- # TODO: These are manifest connectors and won't work as expected until we
90
- # add `--use-local-cdk` support for manifest connectors.
91
79
- connector : source-amplitude
92
80
cdk_extra : n/a
81
+ - connector : source-intercom
82
+ cdk_extra : n/a
93
83
- connector : source-pokeapi
94
84
cdk_extra : n/a
95
85
96
- name : " Check: '${{matrix.connector}}' (skip=${{needs.cdk_changes.outputs['src'] == 'false' || needs.cdk_changes.outputs[matrix.cdk_extra] == 'false'}})"
86
+ # CDK Tests cannot build the Connector object (constructor args not optional).
87
+ # - connector: source-zendesk-support
88
+ # cdk_extra: n/a
89
+
90
+ name : " ${{ needs.cdk_changes.outputs[matrix.cdk_extra] == 'false' && 'Skipped Check' || 'Check' }}: ${{matrix.connector}}"
91
+ if : needs.cdk_changes.outputs['src'] == 'true'
97
92
permissions :
98
93
checks : write
99
94
contents : write # Required for creating commit statuses
@@ -125,110 +120,89 @@ jobs:
125
120
repository : airbytehq/airbyte
126
121
ref : master
127
122
path : airbyte
123
+
128
124
- name : Set up Python
125
+ if : steps.no_changes.outputs.status != 'cancelled'
129
126
uses : actions/setup-python@v5
130
127
with :
131
128
python-version : " 3.11"
132
- # Create initial pending status for test report
133
- - name : Create Pending Test Report Status
129
+
130
+ - name : Set up `uv`
131
+ if : steps.no_changes.outputs.status != 'cancelled'
132
+ uses : astral-sh/setup-uv@v6.1.0
133
+
134
+ - name : Set up `poe`
135
+ if : steps.no_changes.outputs.status != 'cancelled'
136
+ run : |
137
+ uv tool install poethepoet
138
+
139
+ - name : Set up Poetry
140
+ if : steps.no_changes.outputs.status != 'cancelled'
141
+ uses : Gr1N/setup-poetry@v9
142
+ with :
143
+ poetry-version : " 2.0.1"
144
+
145
+ - name : Get Connector Language
146
+ if : steps.no_changes.outputs.status != 'cancelled'
147
+ working-directory : airbyte/airbyte-integrations/connectors/${{ matrix.connector }}
148
+ run : |
149
+ # Get the language of the connector from the metadata file
150
+ CONNECTOR_LANGUAGE=$(poe -qq get-language)
151
+ echo "CONNECTOR_LANGUAGE=$CONNECTOR_LANGUAGE" | tee -a $GITHUB_ENV
152
+
153
+ - name : Install CDK with Poetry
134
154
if : steps.no_changes.outputs.status != 'cancelled'
135
- env :
136
- GH_TOKEN : ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
137
155
run : |
138
- HEAD_SHA="${{ github.event.pull_request.head.sha || github.sha }}"
139
- gh api \
140
- --method POST \
141
- -H "Accept: application/vnd.github+json" \
142
- -H "X-GitHub-Api-Version: 2022-11-28" \
143
- repos/${{ github.repository }}/statuses/$HEAD_SHA \
144
- -f state="pending" \
145
- -f description="Running connector tests..." \
146
- -f context="${{ matrix.connector }} Test Report"
147
-
148
- - name : Test Connector
156
+ cd airbyte-python-cdk
157
+ poetry install --all-extras
158
+
159
+ - name : Fetch Connector Secrets
149
160
if : steps.no_changes.outputs.status != 'cancelled'
150
161
timeout-minutes : 90
162
+ working-directory : airbyte-python-cdk
151
163
env :
152
164
GCP_GSM_CREDENTIALS : ${{ secrets.GCP_GSM_CREDENTIALS }}
153
165
POETRY_DYNAMIC_VERSIONING_BYPASS : " 0.0.0"
154
166
run : |
155
- cd airbyte
156
- make tools.airbyte-ci.install
157
- airbyte-ci \
158
- --ci-report-bucket-name=airbyte-ci-reports-multi \
159
- connectors \
160
- --name ${{matrix.connector}} \
161
- --use-local-cdk \
162
- test \
163
- --fail-fast \
164
- --skip-step qa_checks \
165
- --skip-step connector_live_tests
166
-
167
- - name : Evaluate Test
168
- id : evaluate_output
169
- if : always() && steps.no_changes.outputs.status != 'cancelled'
167
+ poetry run airbyte-cdk secrets fetch ${{ matrix.connector }}
168
+
169
+ - name : Bump to Dev Branch CDK [Python Connectors]
170
+ if : env.CONNECTOR_LANGUAGE == 'python'
171
+ working-directory : airbyte/airbyte-integrations/connectors/${{ matrix.connector }}
170
172
run : |
171
- # save job output json file as ci step output
172
- json_output_file=$(find airbyte/airbyte-ci/connectors/pipelines/pipeline_reports -name 'output.json' -print -quit)
173
- job_output=$(cat ${json_output_file})
174
- success=$(echo ${job_output} | jq -r '.success')
175
- failed_step=$(echo ${job_output} | jq -r '.failed_steps | select(length > 0) | .[0] // "None"')
176
- run_duration=$(echo ${job_output} | jq -r '.run_duration')
177
- html_report_url=$(echo ${job_output} | jq -r '.html_report_url')
178
- echo "## Job Output for ${{matrix.connector}}" >> $GITHUB_STEP_SUMMARY
179
- echo "- [HTML Report](${html_report_url})" >> $GITHUB_STEP_SUMMARY
180
- echo "- Success: ${success}" >> $GITHUB_STEP_SUMMARY
181
- echo "- Test Duration: $(printf "%.0f" ${run_duration})s" >> $GITHUB_STEP_SUMMARY
182
- if [ "${success}" != "true" ]; then
183
- echo "- Failed Step: ${failed_step}" >> $GITHUB_STEP_SUMMARY
184
- fi
185
- echo -e "\n[Download Job Output](${{steps.upload_job_output.outputs.artifact-url}})" >> $GITHUB_STEP_SUMMARY
186
- if [ "${success}" != "true" ]; then
187
- echo "::error::Test failed for connector '${{ matrix.connector }}' on step '${failed_step}'. "
188
- exit 1
189
- fi
190
- echo "See the execution report for details: ${html_report_url}"
191
- echo "success=${success}" >> $GITHUB_OUTPUT
192
- echo "html_report_url=${html_report_url}" >> $GITHUB_OUTPUT
173
+ echo "Using CDK ref ${{ github.event.pull_request.head.sha || github.sha }}"
174
+ poe use-cdk-branch ${{ github.event.pull_request.head.sha || github.sha }}
175
+ poetry install --all-extras
176
+
177
+ - name : Run Unit Tests [Python Connectors]
178
+ if : env.CONNECTOR_LANGUAGE == 'python'
179
+ working-directory : airbyte/airbyte-integrations/connectors/${{ matrix.connector }}
180
+ run : |
181
+ poe test-unit-tests
182
+
183
+ - name : Run FAST Standard Tests [Python Connectors]
184
+ if : env.CONNECTOR_LANGUAGE == 'python'
185
+ working-directory : airbyte/airbyte-integrations/connectors/${{ matrix.connector }}
186
+ env :
187
+ GCP_GSM_CREDENTIALS : ${{ secrets.GCP_GSM_CREDENTIALS }}
188
+ POETRY_DYNAMIC_VERSIONING_BYPASS : " 0.0.0"
189
+ run : |
190
+ poetry run airbyte-cdk connector test
193
191
194
- # Update the test report status with results
195
- - name : Update Test Report Status
196
- if : always() && steps.no_changes.outputs.status != 'cancelled' && steps.evaluate_output.outcome == 'success'
192
+ - name : Run FAST Standard Tests [Manifest-Only Connectors]
193
+ if : env.CONNECTOR_LANGUAGE == 'manifest-only'
194
+ working-directory : airbyte-python-cdk
197
195
env :
198
- GH_TOKEN : ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
196
+ GCP_GSM_CREDENTIALS : ${{ secrets.GCP_GSM_CREDENTIALS }}
197
+ POETRY_DYNAMIC_VERSIONING_BYPASS : " 0.0.0"
199
198
run : |
200
- HEAD_SHA="${{ github.event.pull_request.head.sha || github.sha }}"
201
- gh api \
202
- --method POST \
203
- -H "Accept: application/vnd.github+json" \
204
- -H "X-GitHub-Api-Version: 2022-11-28" \
205
- repos/${{ github.repository }}/statuses/$HEAD_SHA \
206
- -f state="${{ steps.evaluate_output.outputs.success == 'true' && 'success' || 'failure' }}" \
207
- -f target_url="${{ steps.evaluate_output.outputs.html_report_url }}" \
208
- -f description="Click Details to view the test report" \
209
- -f context="${{ matrix.connector }} Test Report"
210
-
211
- # Create failure status if report generation failed
212
- - name : Create Report Generation Failed Status
213
- if : always() && steps.no_changes.outputs.status != 'cancelled' && steps.evaluate_output.outcome != 'success'
199
+ poetry run airbyte-cdk connector test ${{ matrix.connector }}
200
+
201
+ - name : Container Build and Test [All Connectors]
202
+ if : steps.no_changes.outputs.status != 'cancelled'
203
+ working-directory : airbyte-python-cdk
214
204
env :
215
- GH_TOKEN : ${{ secrets.GH_PAT_MAINTENANCE_OCTAVIA }}
205
+ GCP_GSM_CREDENTIALS : ${{ secrets.GCP_GSM_CREDENTIALS }}
206
+ POETRY_DYNAMIC_VERSIONING_BYPASS : " 0.0.0"
216
207
run : |
217
- HEAD_SHA="${{ github.event.pull_request.head.sha || github.sha }}"
218
- gh api \
219
- --method POST \
220
- -H "Accept: application/vnd.github+json" \
221
- -H "X-GitHub-Api-Version: 2022-11-28" \
222
- repos/${{ github.repository }}/statuses/$HEAD_SHA \
223
- -f state="failure" \
224
- -f description="Failed to run connector tests." \
225
- -f context="${{ matrix.connector }} Test Report"
226
-
227
- # Upload the job output to the artifacts
228
- - name : Upload Job Output
229
- id : upload_job_output
230
- if : always() && steps.no_changes.outputs.status != 'cancelled'
231
- uses : actions/upload-artifact@v4
232
- with :
233
- name : ${{matrix.connector}}-job-output
234
- path : airbyte/airbyte-ci/connectors/pipelines/pipeline_reports
208
+ poetry run airbyte-cdk image test ${{ matrix.connector }}
0 commit comments