ci: Add “macOS 12 native arm64” task #25160

pull hebasto wants to merge 3 commits into bitcoin:master from hebasto:220517-ci changing 4 files +46 −12
  1. hebasto commented at 7:06 pm on May 17, 2022: member

    The release binaries for Apple Silicon macOS (arm64-apple-darwin) have been available since v23.0.

    It seems reasonable to add a task for such a platform to CI. Also it would prevent regressions like bitcoin/bitcoin#24958.

  2. ci, refactor: Add `MACOS_NATIVE_TASK_TEMPLATE`
    A native macOS task does not aware of Linux container settings, and it
    does not use the `depends_built_cache`.
    fa9f45fd2f
  3. hebasto force-pushed on May 17, 2022
  4. hebasto force-pushed on May 17, 2022
  5. hebasto force-pushed on May 17, 2022
  6. DrahtBot added the label Tests on May 17, 2022
  7. hebasto force-pushed on May 17, 2022
  8. maflcko commented at 6:13 am on May 18, 2022: member
    Would this actually prevent #24958? Wouldn’t it silently “fail” green?
  9. Zero-1729 commented at 6:28 am on May 18, 2022: contributor
    Concept ACK
  10. maflcko commented at 6:51 am on May 18, 2022: member

    Not sure if it makes sense to run this check on every commit. There is some probability of breaking that is acceptable and unavoidable. I think we should focus on checks that are likely to catch errors often enough to be a net-positive considering the maintenance overhead and CPU overhead of the added CI task.

    So if #24958 is the only known bug this prevents, I tend toward NACK, even though the code looks good and correct.

    I expect that there are ppl running M1 locally, but if not, this could also be implemented as a nightly task to run outside this repo.

  11. in ci/test/04_install.sh:16 in f2e07bdbac outdated
     9@@ -10,10 +10,10 @@ if [[ $QEMU_USER_CMD == qemu-s390* ]]; then
    10   export LC_ALL=C
    11 fi
    12 
    13-if [ "$CI_OS_NAME" == "macos" ]; then
    14+if [ "$CI_OS_NAME" == "macos" ] && [ -n "$PIP_PACKAGES" ]; then
    15   sudo -H pip3 install --upgrade pip
    16   # shellcheck disable=SC2086
    17-  IN_GETOPT_BIN="/usr/local/opt/gnu-getopt/bin/getopt" ${CI_RETRY_EXE} pip3 install --user $PIP_PACKAGES
    18+  IN_GETOPT_BIN="$(brew --prefix gnu-getopt)/bin/getopt" ${CI_RETRY_EXE} pip3 install --user $PIP_PACKAGES
    


    promag commented at 5:45 pm on May 18, 2022:
    Nice one 🤓
  12. in .cirrus.yml:329 in f2e07bdbac outdated
    328+    CI_USE_APT_INSTALL: "no"
    329+    PACKAGE_MANAGER_INSTALL: "echo"  # Nothing to do
    330+    FILE_ENV: "./ci/test/00_setup_env_mac_native_x86_64.sh"
    331+
    332+task:
    333+  name: 'macOS 12 native Apple Silicon [gui, system sqlite] [no depends]'
    


    promag commented at 5:46 pm on May 18, 2022:
    nit, s/Apple Silicon/arm64

    hebasto commented at 7:02 am on May 24, 2022:
  13. promag commented at 5:53 pm on May 18, 2022: member
    Concept ACK
  14. hebasto commented at 8:29 am on May 20, 2022: member

    CPU overhead of the added CI task

    I don’t think the M1 CPU time is shared with any other task.

  15. maflcko commented at 8:34 am on May 20, 2022: member
    According to https://cirrus-ci.org/faq/#are-there-any-limits there is a limit of “12.0 CPUs macOS VM (1 VM)”, so it will be shared with the other macos instance?
  16. hebasto commented at 8:41 am on May 20, 2022: member

    According to https://cirrus-ci.org/faq/#are-there-any-limits there is a limit of “12.0 CPUs macOS VM (1 VM)”, so it will be shared with the other macos instance?

    It looks like docs are a bit inconsistent after introducing Apple Silicon support.

    They are correct about x86_64: image

    But M1 limits differ: image

  17. DrahtBot commented at 10:16 pm on May 23, 2022: contributor

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

    Conflicts

    No conflicts as of last run.

  18. maflcko commented at 6:34 am on May 24, 2022: member
    Ok, looks like it won’t affect the limits for now. Though, I am still wondering how many bugs this will catch that are not found by other tasks.
  19. ci: Add "macOS 12 native Apple Silicon" task 168e7f8cfd
  20. ci: Improve naming related to "macOS 12 native x86_64" task 84cfbc7329
  21. hebasto force-pushed on May 24, 2022
  22. hebasto renamed this:
    ci: Add "macOS 12 native Apple Silicon" task
    ci: Add "macOS 12 native arm64" task
    on May 24, 2022
  23. hebasto commented at 7:01 am on May 24, 2022: member

    Updated f2e07bdbac58c2cd38cd5f668847e95cde3eeefd -> 84cfbc7329e92191e391ba5bb1991108229bbb51 (pr25160.02 -> pr25160.03, diff):

    I am still wondering how many bugs this will catch that are not found by other tasks.

    I hope every bug on the macOS arm64 platform, which has a steadily growing number of users, will be caught before release.

  24. Zero-1729 commented at 2:44 am on June 20, 2022: contributor
    crACK 84cfbc7329e92191e391ba5bb1991108229bbb51
  25. maflcko commented at 3:12 pm on June 21, 2022: member

    I hope every bug on the macOS arm64 platform, which has a steadily growing number of users, will be caught before release.

    It only caught one bug for now, which doesn’t seem enough to justify the maintenance burden? Note that in this repo, *bsd, s390x, various linux distros, valgrind, … aren’t tested either.

  26. hebasto closed this on Jun 21, 2022

  27. maflcko commented at 5:53 am on June 22, 2022: member
    I guess the 1st+3rd commit could still make sense. Then I could add it to my btc_nightly CI run, if you want.
  28. hebasto commented at 8:44 am on June 22, 2022: member

    I guess the 1st+3rd commit could still make sense. Then I could add it to my btc_nightly CI run, if you want.

    Done in #25444.

  29. hebasto commented at 8:50 am on June 22, 2022: member

    Btw, it seems Cirrus Labs stopped updating macOS images for x86_64. At least, image: monterey-xcode-13.4 or image: monterey-xcode-13.4.1 fail, although, they are available for arm64.

    My question remained unanswered.

  30. maflcko referenced this in commit b9122e95f0 on Jun 22, 2022
  31. maflcko commented at 12:06 pm on June 22, 2022: member
    if amd64 is unsupported, we should probably remove it and just switch to arm64?
  32. sidhujag referenced this in commit 8e7d296d73 on Jun 22, 2022
  33. maflcko referenced this in commit bd478890c5 on Oct 27, 2022
  34. hebasto deleted the branch on Dec 3, 2022
  35. bitcoin locked this on Dec 3, 2023

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: 2024-11-23 09:12 UTC

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