-
-
Notifications
You must be signed in to change notification settings - Fork 31k
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
Move Azure Pipelines CI to GitHub Actions #109408
Comments
Hmm, and Azure Pipelines is only running for PRs to There are two top-level Azure Pipelines config files: Azure Pipelines CIThis runs on version branches, after a PR has been merged. But when we forked 3.12 from trigger: ['main', '3.11', '3.10', '3.9', '3.8', '3.7'] Azure Pipelines PRThis runs when PRs are opened. But it's only running for PRs against ExampleTo illustrate, this set of PRs only only had AP builds for After merge, AP ran for For comparison, GitHub Actions runs for PRs for all branches, but not merged pushes to version branches. |
I believe @zooba said there were some things being tested on Azure Pipelines that GitHub Actions didn't support? |
Azure Pipelines is doing install layout testing using the APPX layout as a second step post-commit. While I'd most like to have the default build match the install layout, this has been a useful way to catch issues in tests that assume a source directory layout. These tests are templated at https://github.com/python/cpython/blob/main/.azure-pipelines/windows-layout-steps.yml and included a few times in |
Looks like we could potentially remove the "Tests" step (and "Publish Test Results") from In addition to the APPX layout step, should we also keep the nuget and embed layout steps? cpython/.azure-pipelines/ci.yml Lines 103 to 115 in 3b9d10b
|
Yeah, that would work. But it's post-commit testing anyway, so it isn't holding anyone up. And knowing that the regular tests pass is incredibly valuable when something specific to one of the layouts fails. I'm pretty sure people are only annoyed by the PR integration. If that goes away, nobody will care unless they're looking for it. As for the different layouts, the nuget and embed layouts only do really quick tests. I'd keep them all, as it gives us early warning that something has broken them (e.g. a new DLL isn't being copied). Otherwise we won't find out until during the release process when the same tests are run. |
Sounds good. I suggest we proceed as follows:
|
Clarification on 1:
Let's remove Ubuntu unit tests from both That leaves only Please see PR #109452. |
…nGH-109452) (cherry picked from commit a75daed) Co-authored-by: Hugo van Kemenade <[email protected]>
…pythonGH-109452) (cherry picked from commit a75daed) Co-authored-by: Hugo van Kemenade <[email protected]>
(cherry picked from commit dd5d214) Co-authored-by: Hugo van Kemenade <[email protected]>
(cherry picked from commit dd5d214) Co-authored-by: Hugo van Kemenade <[email protected]>
) Co-authored-by: Hugo van Kemenade <[email protected]>
…b Actions (pythonGH-109569) (cherry picked from commit 14cdefa) Co-authored-by: Hugo van Kemenade <[email protected]>
…ck to pre-commit (GH-109891) (#110633) GH-109408: Move the Python file whitespace check from patchcheck to pre-commit (GH-109891) (cherry picked from commit 08ec4a1) Co-authored-by: Adam Turner <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
…eck to pre-commit (pythonGH-109890) Co-authored-by: Hugo van Kemenade <[email protected]> (cherry picked from commit f5edb56) Co-authored-by: Adam Turner <[email protected]>
…eck to pre-commit (pythonGH-109890) Co-authored-by: Hugo van Kemenade <[email protected]>. (cherry picked from commit f5edb56) Co-authored-by: Adam Turner <[email protected]>
…tchcheck to pre-commit (pythonGH-109891) Co-authored-by: Hugo van Kemenade <[email protected]>. (cherry picked from commit 08ec4a1) Co-authored-by: Adam Turner <[email protected]>
… solution (pythonGH-110726) (cherry picked from commit de956b2) Co-authored-by: Hugo van Kemenade <[email protected]>
This no longer does anything useful, beyond wasting Azure resources.
This no longer does anything useful, beyond wasting Azure resources.
…-commit (python#109854) Co-authored-by: Alex Waygood <[email protected]> Co-authored-by: Adam Turner <[email protected]>
…k to pre-commit (python#109891) Co-authored-by: Hugo van Kemenade <[email protected]>
…pre-commit (python#109890) Co-authored-by: Hugo van Kemenade <[email protected]>
Closing, this is essentially done now. The remaining Azure Pipelines config is for testing after merge, and can stay to help test packaging the Windows installers. We've moved all the pre-merge, PR-level stuff into GitHub Actions. #122333 is still open, but isn't directly about moving AP stuff into GHA. |
GitHub Actions is easier to use and maintain. For example, GitHub Actions is more popular and widely used, and so more familiar. It's easier to maintain a single system. Also core devs can restart failed GitHub Actions whereas they can't for Azure Pipelines. Both are owned by Microsoft and I believe they run on much the same infra.
There's a lot of duplication of tests between Azure Pipelines and GitHub Actions.
Let's remove the duplicated tests, and move the unique things over to GitHub Actions. For example,
patchcheck
is only run on AP.We might not necessarily need to port things directly over, it may be possible to replicate equivalent checks in another way, possible with a pre-commit or Ruff lint rule. Let's evaluate these separately.
Related issues/PRs:
macOS CI Tests
andUbuntu CI Tests (coverage)
jobs are always skipped #109395Linked PRs
patchcheck
in GitHub Actions #109459make lint
target #122333.azure-pipelines/pr.yml
#122643The text was updated successfully, but these errors were encountered: