-
Notifications
You must be signed in to change notification settings - Fork 292
[CI] [nightly] Run the hardware integration tests parallelly for each provider #3505
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
[CI] [nightly] Run the hardware integration tests parallelly for each provider #3505
Conversation
khalatepradnya
commented
Oct 8, 2025
- Order alphabetically by provider name
- Enable all tests to check the status
* Order the providers alphabetically Signed-off-by: Pradnya Khalate <[email protected]>
exit 1 | ||
fi | ||
- name: Submit to ${{ inputs.target }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed this since I can't find any use of it. @mitchdz - let me know if this needs to be retained.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you see no good use for it, then it could be fine to remove. You will see it doesn't get ran on the automated test because of the github.event_name == 'workflow_dispatch'
check. I'm not fully familiar with Quantinuum, so maybe it is useful to keep this in for manual testing from time to time?
CUDA Quantum Docs Bot: A preview of the documentation can be found here. |
# Get tests specifically for this provider | ||
case "${{ matrix.provider }}" in | ||
anyon) | ||
filelist="targettests/anyon/*.cpp" | ||
;; | ||
fermioniq) | ||
filelist="docs/sphinx/targets/cpp/fermioniq.cpp docs/sphinx/targets/python/fermioniq.py docs/sphinx/targets/python/fermioniq_observables.py" | ||
;; | ||
infleqtion) | ||
filelist="docs/sphinx/targets/cpp/infleqtion.cpp docs/sphinx/targets/python/infleqtion.py" | ||
;; | ||
ionq) | ||
filelist="targettests/ionq/*.cpp" | ||
;; | ||
iqm) | ||
filelist="targettests/iqm/*.cpp" | ||
;; | ||
oqc) | ||
filelist="targettests/oqc/*.cpp" | ||
;; | ||
orca) | ||
filelist="docs/sphinx/targets/cpp/orca.cpp docs/sphinx/targets/cpp/orca_mqpu.cpp docs/sphinx/targets/python/orca.py docs/sphinx/targets/python/orca_mqpu.py" | ||
;; | ||
pasqal) | ||
filelist="docs/sphinx/targets/cpp/pasqal.cpp docs/sphinx/targets/python/pasqal.py" | ||
;; | ||
qci) | ||
filelist="targettests/qci/*.cpp" | ||
;; | ||
quantinuum) | ||
# Include both legacy Quantinuum and Quantinuum-NG tests | ||
filelist="targettests/quantinuum/*.cpp targettests/quantinuum_ng/*.cpp docs/sphinx/targets/python/quantinuum.py" | ||
;; | ||
esac |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this can be made to fetch all files in a folder (as per the provider) as it will be a lengthly lists of tests if the number of tests increases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That way we can avoid hard coding the filenames as well.
echo "### Setting up Anyon account" >> $GITHUB_STEP_SUMMARY | ||
curl -X POST --user "${{ secrets.ANYON_USERNAME }}:${{ secrets.ANYON_PASSWORD }}" \ | ||
-H "Content-Type: application/json" https://api.anyon.cloud:5000/login > credentials.json | ||
id_token=`cat credentials.json | jq -r '."id_token"'` | ||
refresh_token=`cat credentials.json | jq -r '."refresh_token"'` | ||
echo "key: $id_token" > ~/.anyon_config | ||
echo "refresh: $refresh_token" >> ~/.anyon_config | ||
;; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For each of these provider, the env commands can go into separate env files, which we can call here and execute those.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That way we just need to have one case or rather a call like execute_env(${{ matrix.provider }})
.
done | ||
;; | ||
qci) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can do similar thing with test execution where the commands would go in separate files and we call those files here to execute those commands.
Just to make it dynamic, where we can plug and pull any tests from the integration suite, those tests names can be fetched from the file names (with provider names). |