Skip to content
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

Migrate CI to Github Actions #13474

Open
wants to merge 22 commits into
base: main
Choose a base branch
from
Open

Conversation

raynelfss
Copy link
Contributor

@raynelfss raynelfss commented Nov 21, 2024

Summary

Fixes #12807.
The following commits move existing workflows from Azure into Github Actions.

Details and comments

As simple as it may seem, our CI Pipeline goes through several workflows, some of which are split between Github Actions and Azure Workflows. While Azure Workflows provided us with many extra features and an isolated quota, tests seem to run much slower than they would with Github Actions (exact numbers to be examined). This move will (most likely) ensure that workflows run faster increasing our overall commit throughput.

The moved workflows include:

  • Pull Requests:
    • Docs and Lint
    • Python and partial rust tests.
  • Commits:
    • On push
    • Nightly tests
    • Merge queue

New Pull Request workflow

The new PR workflow looks as such:
image
Where if both Docs and Lint and Preliminary Tests pass, then the rest of the test suite runs concurrently.

Tasks

  • Move Lint and Docs
  • Move Python Tests
  • Organize concurrency
  • Add nightly tests
  • Merge queue tests
  • Run nightly matrix tests when code changes.

Known issues

  • How to properly test merge-queue, push, nightly tests.
  • Main nightly tests should only run when new changes in the code are introduced (as per the previous azure workflow).

@raynelfss raynelfss added the type: qa Issues and PRs that relate to testing and code quality label Nov 21, 2024
@coveralls
Copy link

coveralls commented Nov 21, 2024

Pull Request Test Coverage Report for Build 12967397921

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 5 unchanged lines in 2 files lost coverage.
  • Overall coverage increased (+0.007%) to 88.948%

Files with Coverage Reduction New Missed Lines %
crates/qasm2/src/expr.rs 1 94.23%
crates/qasm2/src/lex.rs 4 92.98%
Totals Coverage Status
Change from base Build 12951053301: 0.007%
Covered Lines: 79444
Relevant Lines: 89315

💛 - Coveralls

@raynelfss raynelfss force-pushed the move-to-gh branch 2 times, most recently from 74a0fe4 to ba1a164 Compare November 25, 2024 13:46
@raynelfss raynelfss force-pushed the move-to-gh branch 2 times, most recently from ebc3e6e to e0c9a46 Compare December 2, 2024 18:51
@raynelfss raynelfss added the Changelog: None Do not include in changelog label Dec 3, 2024
@raynelfss
Copy link
Contributor Author

I have yet to test the nightly, merge-queue, and push tests. But I believe they should work without issues since they're mostly reusing the same workflows we use here for Pull Requests CI. I'm going to open this up for review :)

@raynelfss raynelfss marked this pull request as ready for review December 3, 2024 19:57
@raynelfss raynelfss requested a review from a team as a code owner December 3, 2024 19:57
@qiskit-bot
Copy link
Collaborator

One or more of the following people are relevant to this code:

  • @Qiskit/terra-core

mtreinish added a commit to mtreinish/qiskit-core that referenced this pull request Jan 26, 2025
With native linux aarch64 runners available from github now available
[1] we can run tests on every PR on the platform and promote it to tier
1 support [2]. This commit adds a github action test job that runs on
PRs to test that the platform works on every commit. Then the wheel job
is promoted to the tier 1 job which includes PGO which will improve the
performance on the wheels we publish for the platform.

While there is a larger effort to migrate our entire CI to github
actions in Qiskit#13474 expanding our test matrix prior to that won't cause
a conflict as we can easily expand the test matrix in that PR if this
merges first.

[1]: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
[2]: https://docs.quantum.ibm.com/guides/install-qiskit#operating-system-support
mtreinish added a commit to mtreinish/qiskit-core that referenced this pull request Jan 26, 2025
With native linux aarch64 runners available from github now available
[1] we can run tests on every PR on the platform and promote it to tier
1 support [2]. This commit adds a github action test job that runs on
PRs to test that the platform works on every commit. Then the wheel job
is promoted to the tier 1 job which includes PGO which will improve the
performance on the wheels we publish for the platform.

While there is a larger effort to migrate our entire CI to github
actions in Qiskit#13474 expanding our test matrix prior to that won't cause
a conflict as we can easily expand the test matrix in that PR if this
merges first.

[1]: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
[2]: https://docs.quantum.ibm.com/guides/install-qiskit#operating-system-support
github-merge-queue bot pushed a commit that referenced this pull request Feb 24, 2025
* Promote linux aarch64 to tier 1 support

With native linux aarch64 runners available from github now available
[1] we can run tests on every PR on the platform and promote it to tier
1 support [2]. This commit adds a github action test job that runs on
PRs to test that the platform works on every commit. Then the wheel job
is promoted to the tier 1 job which includes PGO which will improve the
performance on the wheels we publish for the platform.

While there is a larger effort to migrate our entire CI to github
actions in #13474 expanding our test matrix prior to that won't cause
a conflict as we can easily expand the test matrix in that PR if this
merges first.

[1]: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
[2]: https://docs.quantum.ibm.com/guides/install-qiskit#operating-system-support

* Update job name for test job

* Try latest manylinux image for arm

* Use url for image path

* Try without explicit latest tag

* Tweak rust install script

* Revert "Try without explicit latest tag"

This reverts commit d39b6ee.

* Split out aarch64 tier 1 job to separate job

The aarch64 wheel builds are failing with PGO on latest stable (and
stable - 1). This is likely either an issue in rustc or the llvm tools
component from rustup on the later releases. But it seems to build fine
with our MSRV. We build with latest stable for release jobs typically to
enable the improvements from the latest compiler for what we publish.
But PGO has enough benefit that using our MSRV is fine if that is what's
necessary.

* Remove duplicate tier 1 arm job

* Try different target string to fix profile version mismatch

* Tweak msrv install again

* Only install a single rust toolchain in aarch64 env

* Deduplicate job definitions

* Add comment about msrv location

* Remove stale comment

* Fix release notes typo

* Adjust run script

* Set rust toolchain to msrv in build
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: None Do not include in changelog type: qa Issues and PRs that relate to testing and code quality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate CI to github actions
3 participants