[lts_03_2025] CI: migrate to Microsoft-hosted agents (retired ACR/self-hosted pools break all PRs) - #2747
Conversation
The C-canary pipeline on this branch cannot run at all. Every Linux job pulls its container from csdkcontainerregistry.azurecr.io via the csdk-containers endpoint, and runs on the sdk-c--* self-hosted pools. Both the registry and those pools were retired; main moved off them in #2701. On this branch the first job of the Setup stage therefore fails in "Initialize containers" with: Could not fetch access token for ACR. Please configure Managed Service Identity (MSI) for Azure Container Registry with the appropriate permissions. Setup gates everything, so all downstream stages are skipped and any PR targeting lts_03_2025 is red before a line is compiled. Observed on build 162517 (PR #2746), which failed 14s in. Bring the CI configuration to parity with main by taking main's version of the pipeline and the build/test scripts it drives. This corresponds to the eight pipeline commits made on main since this branch diverged: c59df07 Update CODEOWNERS and ubuntu-20.04 runner pool (deprecated) (#2677) 5f11fab Run Cleanup stage even if cancelled (#2682) c5d43cf Replace pipeline with Microsoft-hosted agents (#2701) 891fa30 Self-sufficient hosted-agent optimizations (#2718) 1317b57 Make AZURE_LOCATION a runtime parameter (#2717) 6473693 Replace Node.js check_submodules with PowerShell (#2721) fa6ad5d Disable NTLM in linux-setup-raspberry.sh (#2733) c86b2d6 Make CodeQL opt-in per job (#2743) Taken as an end state rather than eight cherry-picks: the intermediate commits conflict with each other in build_all/linux/run_tests.sh, and the only state that matters is the one main runs green today. Every file changed here is CI or test infrastructure. No product source, no submodule pointers, and no version change. Audited against this branch's tree before committing: - all build_all/, jenkins/, testtools/ and samples/ paths the pipeline invokes exist here - the cmake options it passes resolve the same way they do on main (enable_ipv6 is a c-utility option on both; -DpsX509IndividualEnrollments is a PowerShell parameter, not a cmake one) - the YAML parses: 4 stages, 30 jobs, no remaining azurecr.io reference Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: Successfully started running 1 pipeline(s). 1 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Status note: build 162518 has been sitting in One thing already confirmed by this run, though: the stage graph now resolves to Please check the completed run before merging — as noted above, I could not build or test locally, and a genuine LTS-only failure is plausible given the ~14-month source gap. |
Problem
The
C-canarypipeline cannot run at all onlts_03_2025. Every Linux job pulls its container fromcsdkcontainerregistry.azurecr.iothrough thecsdk-containersendpoint and runs on thesdk-c--*self-hosted pools. Both the registry and those pools were retired;mainmoved off them in #2701.The first job of the
Setupstage fails inInitialize containers:Setupgates everything, so all downstream stages are skipped and any PR targeting this branch is red before a line is compiled. Observed on build 162517 (PR #2746), which failed 14 seconds in. This is not transient and will not fix itself.Change
Bring the CI configuration to parity with
main: takemain's version ofbuild/.vsts-ci.ymland the build/test scripts it drives. This corresponds to the eight pipeline commits made onmainsince this branch diverged at5a48d3fd8:c59df07db5f11fab75c5d43cf83891fa30741317b572464736930afa6ad5d5ac86b2d6a5Applied as an end state rather than eight cherry-picks: the intermediate commits conflict with each other in
build_all/linux/run_tests.sh, and the only state that matters is the onemainruns green today.Every file changed is CI or test infrastructure. No product source, no submodule pointer changes, no version change.
Audit performed against this branch's tree
build_all/,jenkins/,testtools/andsamples/paths the pipeline invokes exist here.main(enable_ipv6is a c-utility option on both branches;-DpsX509IndividualEnrollmentsis a PowerShell parameter, not a cmake one).azurecr.ioreference.ccacheadded tosetup.shdeps, and the gcc-12+-Wmaybe-uninitializedfalse-positive entry dropped fromjenkins/linux_c_option_test.sh. The.suppchanges only add valgrind suppressions, which cannot mask a new failure mode into existence.Caveats for the reviewer
main.main's pipeline was tuned againstmain's source, so it is possible some job surfaces a genuine, pre-existing LTS-only failure (older gcc-13 interactions, E2E drift). Those would be real signal, not fallout from this change, but they may need follow-up commits here.iot hub sdk service connection. That connection is pipeline-scoped, not branch-scoped, so it should work here, but this is the first time it will be exercised from this branch.lts_03_2025reaches its maintenance end date on 2026-10-07, so this restores a working gate for roughly six remaining weeks.Why now
#2746 backports the DPS
safe_add_size_thardening (#2738, MSRC 128877) to this branch and cannot go green until this lands. Recommend merging this first, then rerunning #2746.Relates to AB#39392647.