ci: switch to warp runners #35378

pull willcl-ark wants to merge 1 commits into bitcoin:master from willcl-ark:warpbuild-runners changing 2 files +27 −27
  1. willcl-ark commented at 9:40 AM on May 26, 2026: member

    As cirrus is closing down, switch to warpbuild runners.

    Switch runner and provider names over. We now use GHA cache, so we don't need to switch that over here.

  2. DrahtBot added the label Tests on May 26, 2026
  3. DrahtBot commented at 9:40 AM on May 26, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35378.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK m3dwards, maflcko, hebasto
    Concept ACK fanquake, achow101

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #35140 (ci: Temporarily move CI from Cirrus to GHA by maflcko)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  4. willcl-ark force-pushed on May 26, 2026
  5. willcl-ark marked this as ready for review on May 26, 2026
  6. willcl-ark force-pushed on May 26, 2026
  7. in .github/workflows/ci.yml:22 in b02e0936a5
      18 | @@ -19,7 +19,7 @@ concurrency:
      19 |  
      20 |  env:
      21 |    CI_FAILFAST_TEST_LEAVE_DANGLING: 1  # GHA does not care about dangling processes and setting this variable avoids killing the CI script itself on error
      22 | -  REPO_USE_CIRRUS_RUNNERS: 'bitcoin/bitcoin' # Use cirrus runners for this repo, instead of falling back to the slow GHA runners
      23 | +  REPO_USE_WARP_RUNNERS: 'bitcoin/bitcoin' # Use warp runners for this repo
    


    maflcko commented at 8:47 PM on May 26, 2026:

    Why remove the second part of the sentence?


    willcl-ark commented at 7:56 AM on May 27, 2026:

    Just while I was touching that line didn't really feel it was necessary. Happy to add it back though if you prefer :)


    maflcko commented at 8:01 AM on May 27, 2026:

    I guess it is a bit obvious, but this is the only reason all this dancing is required here. If there was an easy way to use faster/larger GH runners, we'd just do that :sweat_smile:

    So my preference would be to keep it, but not a blocker.

    Also, the pull description could be updated to remove "Draft ..."?


    willcl-ark commented at 8:16 AM on May 27, 2026:

    done both

  8. willcl-ark force-pushed on May 27, 2026
  9. fanquake commented at 8:18 AM on May 27, 2026: member

    Concept ACK

  10. willcl-ark commented at 8:36 AM on May 27, 2026: member

    One other pertinent detail that's probably worth mentioning here, is that Warp charges per minute used, vs Cirrus which was "$x per vCPU per month".

    The benefit we will see is that we can start all jobs concurrently, always (I am not aware of any limit on concurrency).

    We will want to make even more sure than usual that our CI runs are wall-time efficient though, to minimise costs.

  11. maflcko commented at 8:51 AM on May 27, 2026: member

    We will want to make even more sure than usual that our CI runs are wall-time efficient though, to minimise costs.

    Are there any docs (wrt runner types, etc) or dashboards (wrt usage) on warp?

    Also, maybe the commit could be squashed, as they mostly modify the same lines thrice?

  12. willcl-ark force-pushed on May 27, 2026
  13. DrahtBot added the label CI failed on May 27, 2026
  14. willcl-ark commented at 10:09 AM on May 27, 2026: member

    We will want to make even more sure than usual that our CI runs are wall-time efficient though, to minimise costs.

    Are there any docs (wrt runner types, etc) or dashboards (wrt usage) on warp?

    Yes there are some observability dashboards, for example can view resource usage per job:

    <img width="2380" height="1417" alt="image" src="https://github.com/user-attachments/assets/c89ba6e5-8faf-4abe-bc79-094f521c393d" />

    and docs are available at: https://www.warpbuild.com/docs/ci/cloud-runners

    Also, maybe the commit could be squashed, as they mostly modify the same lines thrice?

    Agree, the diff has shrunk so much these deserve to be squashed. Done.

  15. DrahtBot removed the label CI failed on May 27, 2026
  16. hebasto commented at 2:46 PM on May 27, 2026: member

    Concept ACK.

  17. maflcko commented at 3:20 PM on May 27, 2026: member

    According to lscpu, they are using the same 7950X3D machines, so nothing should change in that regard.

    Looks like you forgot to update the readme?

    $ git grep -i cirrus 9053538a45df1fca78fdd79495b99dd95e1cc1a2 ci
    9053538a45df1fca78fdd79495b99dd95e1cc1a2:.editorconfig:# .cirrus.yml, etc.
    
    9053538a45df1fca78fdd79495b99dd95e1cc1a2:ci/README.md:1. Register with [Cirrus Runners](https://cirrus-runners.app/) and purchase runners.
    9053538a45df1fca78fdd79495b99dd95e1cc1a2:ci/README.md:2. Install the Cirrus Runners GitHub app against the GitHub organization.
    9053538a45df1fca78fdd79495b99dd95e1cc1a2:ci/README.md:It is also possible to use your own Cirrus Runners in your own fork with an appropriate patch to the `REPO_USE_CIRRUS_RUNNERS` variable in ../.github/workflows/ci.yml
    9053538a45df1fca78fdd79495b99dd95e1cc1a2:ci/README.md:NB that Cirrus Runners only work at an organisation level, therefore in order to use your own Cirrus Runners, *the fork must be within your own organisation*.
    
  18. in .github/workflows/ci.yml:469 in 9053538a45
     468 |              timeout-minutes: 120
     469 |              file-env: './ci/test/00_setup_env_native_asan.sh'
     470 |  
     471 |            - name: 'macOS-cross to arm64'
     472 | -            cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm'
     473 | +            warp-runner: 'warp-ubuntu-2404-x64-4x'
    


    maflcko commented at 3:23 PM on May 27, 2026:

    Could use ubuntu-latest, to avoid having to touch this ever again?


    m3dwards commented at 6:18 PM on May 27, 2026:

    Why use a Github runner for this job specifically?


    willcl-ark commented at 7:29 PM on May 27, 2026:

    Could use ubuntu-latest, to avoid having to touch this ever again?

    For all 2404 jobs or only this one?

    I don't mind switching them all to latest, but we'd have to accept there will be a day they all increment to the next released version. Is that what we want?


    maflcko commented at 7:53 AM on May 28, 2026:

    Could use ubuntu-latest, to avoid having to touch this ever again?

    For all 2404 jobs or only this one?

    I don't mind switching them all to latest, but we'd have to accept there will be a day they all increment to the next released version. Is that what we want?

    For all, except for the Asan-usdt one, which requires 24.04.

    I think we don't care about the Ubuntu version otherwise, since everything is in docker, so having to bump manually is just busy-work?


    willcl-ark commented at 7:56 AM on May 28, 2026:

    Yep sounds good to me. Done in 94ae85405f8b7adb160d2f8de4aa0acee6717152

  19. maflcko approved
  20. maflcko commented at 3:23 PM on May 27, 2026: member

    lgtm

  21. achow101 commented at 5:41 PM on May 27, 2026: member

    Concept ACK

  22. m3dwards commented at 6:23 PM on May 27, 2026: contributor

    Concept ACK

    I've also run it on my fork: https://github.com/m3dwards/bitcoin/actions/runs/26519588128

  23. willcl-ark force-pushed on May 28, 2026
  24. maflcko commented at 7:58 AM on May 28, 2026: member

    Still forgot the readme? #35378 (comment)

  25. ci: switch runners from cirrus to warpbuild 4bdd46ace3
  26. willcl-ark force-pushed on May 28, 2026
  27. DrahtBot added the label CI failed on May 28, 2026
  28. willcl-ark commented at 1:26 PM on May 28, 2026: member

    Still forgot the readme? (earlier comment)

    Readme (fully) updated now.

  29. m3dwards commented at 2:33 PM on May 28, 2026: contributor

    Alpine job failure looks like flake.

    ACK 4bdd46ace37f02da062a53a2943caeddca4ed8f9

    Ran on my own fork, witnessed "Runner name: 'warp-8x-x64-whbg8pwh4yea4g8l'" on this PR CI run as well as "Cache restored successfully" so warp machines can pull GHA cache fine. Also double checked the sizes match.

  30. DrahtBot requested review from achow101 on May 28, 2026
  31. DrahtBot requested review from fanquake on May 28, 2026
  32. DrahtBot requested review from hebasto on May 28, 2026
  33. maflcko commented at 2:48 PM on May 28, 2026: member

    review ACK 4bdd46ace37f02da062a53a2943caeddca4ed8f9 🤾

    <details><summary>Show signature</summary>

    Signature:

    untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
    RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
    trusted comment: review ACK 4bdd46ace37f02da062a53a2943caeddca4ed8f9  🤾
    RSHQjoTjKJbTMqED3HHeLsllpk31D6CukaFihKCIQ8jgxitj8LNLbExX8A6hSLFJSoeejTOjdcv5t4RLkQlsAw==
    

    </details>

  34. in .github/workflows/ci.yml:456 in 4bdd46ace3
     453 |              timeout-minutes: 120
     454 |              file-env: './ci/test/00_setup_env_native_iwyu.sh'
     455 |  
     456 |            - name: '32 bit ARM'
     457 | -            cirrus-runner: 'ubuntu-24.04-arm' # Cirrus' Arm runners are Apple (with virtual Linux aarch64), which doesn't support 32-bit mode
     458 | +            warp-runner: 'ubuntu-24.04-arm' # Warp's Arm runners don't support 32-bit mode currently
    


    hebasto commented at 3:56 PM on May 28, 2026:

    Warp's Arm runners don't support 32-bit mode currently

    Is this documented somewhere, or has it been confirmed in another way?

  35. DrahtBot requested review from hebasto on May 28, 2026
  36. hebasto approved
  37. hebasto commented at 3:59 PM on May 28, 2026: member

    ACK 4bdd46ace37f02da062a53a2943caeddca4ed8f9.

    In the future, we might want to remove "cirrus" from here:https://github.com/bitcoin/bitcoin/blob/d12d8e52d23f04944f604ca88d645c440e01552b/.editorconfig#L16

  38. fanquake merged this on May 28, 2026
  39. fanquake closed this on May 28, 2026

  40. fanquake referenced this in commit 6f1ff568fe on May 28, 2026
  41. fanquake commented at 4:15 PM on May 28, 2026: member

    Backported to 31.x in #35331.

  42. fanquake added the label Needs backport (29.x) on May 28, 2026
  43. fanquake added the label Needs backport (30.x) on May 28, 2026
  44. fanquake referenced this in commit 3bfe6ec560 on May 29, 2026
  45. fanquake removed the label Needs backport (30.x) on May 29, 2026
  46. fanquake commented at 8:23 AM on May 29, 2026: member

    Backported to 30.x in #35232.

  47. fanquake referenced this in commit 47cc011853 on May 29, 2026
  48. fanquake removed the label Needs backport (29.x) on May 29, 2026
  49. fanquake commented at 8:48 AM on May 29, 2026: member

    Backported to 29.x in #35234.

  50. m3dwards deleted the branch on May 29, 2026

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-31 17:50 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me