1414 type : boolean
1515 default : false
1616 cli_tests :
17- description : ' Run develop-cli tests '
17+ description : ' develop-cli'
1818 type : boolean
1919 default : false
2020 submodule_tests :
21- description : ' Run submodule tests'
21+ description : ' submodule- tests'
2222 type : boolean
2323 default : false
2424 version_match_tests :
25- description : ' Run version consistency checks'
25+ description : ' version-consistency-checks'
26+ type : boolean
27+ default : false
28+ extras_integration_tests :
29+ description : ' integration-tidy3d-extras'
2630 type : boolean
2731 default : false
2832 release_tag :
2933 description : ' Release Tag (v2.10.0, v2.10.0rc1)'
3034 required : false
3135 type : string
3236 default : ' '
33-
37+
3438 workflow_call :
3539 inputs :
3640 remote_tests :
5862 type : boolean
5963 required : false
6064 default : false
65+ extras_integration_tests :
66+ description : ' Run tidy3d-extras integration tests'
67+ type : boolean
68+ required : false
69+ default : false
6170 release_tag :
6271 description : ' Release Tag (v2.10.0, v2.10.0rc1)'
6372 required : false
95104 cli_tests : ${{ steps.determine-test-type.outputs.cli_tests }}
96105 submodule_tests : ${{ steps.determine-test-type.outputs.submodule_tests }}
97106 version_match_tests : ${{ steps.determine-test-type.outputs.version_match_tests }}
107+ extras_integration_tests : ${{ steps.determine-test-type.outputs.extras_integration_tests }}
98108 steps :
99109 - name : determine-test-type
100110 id : determine-test-type
@@ -108,6 +118,7 @@ jobs:
108118 INPUT_CLI : ${{ github.event.inputs.cli_tests || inputs.cli_tests }}
109119 INPUT_SUBMODULE : ${{ github.event.inputs.submodule_tests || inputs.submodule_tests }}
110120 INPUT_VERSION_MATCH : ${{ github.event.inputs.version_match_tests || inputs.version_match_tests }}
121+ INPUT_EXTRAS_INTEGRATION : ${{ github.event.inputs.extras_integration_tests || inputs.extras_integration_tests }}
111122 run : |
112123 echo "Event: $EVENT_NAME"
113124 echo "Draft: $DRAFT_STATE"
@@ -118,6 +129,7 @@ jobs:
118129 echo "Input cli: $INPUT_CLI"
119130 echo "Input submodule: $INPUT_SUBMODULE"
120131 echo "Input version_match: $INPUT_VERSION_MATCH"
132+ echo "Input extras_integration: $INPUT_EXTRAS_INTEGRATION"
121133
122134 remote_tests=false
123135 local_tests=false
@@ -126,6 +138,7 @@ jobs:
126138 version_match_tests=false
127139 code_quality_tests=false
128140 pr_review_tests=false
141+ extras_integration_tests=false
129142
130143 # Workflow_dispatch input override
131144 if [[ "$EVENT_NAME" == "workflow_dispatch" ]]; then
@@ -150,6 +163,10 @@ jobs:
150163 if [[ "$INPUT_VERSION_MATCH" == "true" ]]; then
151164 version_match_tests=true
152165 fi
166+
167+ if [[ "$INPUT_EXTRAS_INTEGRATION" == "true" ]]; then
168+ extras_integration_tests=true
169+ fi
153170 fi
154171
155172 # All PRs that have been triggered need local tests (remote reserved for merge queue/manual)
@@ -163,6 +180,7 @@ jobs:
163180 local_tests=true
164181 remote_tests=true
165182 code_quality_tests=true
183+ extras_integration_tests=true
166184 fi
167185
168186 echo "local_tests=$local_tests" >> $GITHUB_OUTPUT
@@ -172,13 +190,15 @@ jobs:
172190 echo "version_match_tests=$version_match_tests" >> $GITHUB_OUTPUT
173191 echo "code_quality_tests=$code_quality_tests" >> $GITHUB_OUTPUT
174192 echo "pr_review_tests=$pr_review_tests" >> $GITHUB_OUTPUT
193+ echo "extras_integration_tests=$extras_integration_tests" >> $GITHUB_OUTPUT
175194 echo "code_quality_tests=$code_quality_tests"
176195 echo "pr_review_tests=$pr_review_tests"
177196 echo "local_tests=$local_tests"
178197 echo "remote_tests=$remote_tests"
179198 echo "cli_tests=$cli_tests"
180199 echo "submodule_tests=$submodule_tests"
181200 echo "version_match_tests=$version_match_tests"
201+ echo "extras_integration_tests=$extras_integration_tests"
182202
183203 lint :
184204 needs : determine-test-scope
@@ -919,7 +939,16 @@ jobs:
919939
920940 echo ""
921941 echo "=== Submodule Checks Passed ==="
922-
942+
943+ extras-integration-tests :
944+ name : extras-integration-tests
945+ needs : determine-test-scope
946+ if : needs.determine-test-scope.outputs.extras_integration_tests == 'true'
947+ uses : ./.github/workflows/tidy3d-extras-python-client-integration-tests.yml
948+ with :
949+ release_tag : ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag || inputs.release_tag }}
950+ secrets : inherit # zizmor: ignore[secrets-inherit]
951+
923952 workflow-validation :
924953 name : workflow-validation
925954 if : always()
@@ -936,6 +965,7 @@ jobs:
936965 - develop-cli-tests
937966 - verify-version-consistency
938967 - test-submodules
968+ - extras-integration-tests
939969 runs-on : ubuntu-latest
940970 steps :
941971 - name : check-linting-result
@@ -1004,6 +1034,12 @@ jobs:
10041034 echo "❌ Submodule tests failed."
10051035 exit 1
10061036
1037+ - name : check-extras-integration-tests-result
1038+ if : ${{ needs.determine-test-scope.outputs.extras_integration_tests == 'true' && needs.extras-integration-tests.result != 'success' && needs.extras-integration-tests.result != 'skipped' }}
1039+ run : |
1040+ echo "❌ tidy3d-extras integration tests failed."
1041+ exit 1
1042+
10071043 - name : all-checks-passed
10081044 if : ${{ success() }}
10091045 run : echo "✅ All required jobs passed!"
0 commit comments