{
 "number": 35774,
 "repo": "bitcoin/bitcoin",
 "url": "https://github.com/bitcoin/bitcoin/pull/35774",
 "title": "ci: test cross-built macos arm64 binaries",
 "author": "willcl-ark",
 "author_association": "MEMBER",
 "created_at": "2026-07-22T13:04:16Z",
 "updated_at": "2026-09-13T03:41:55Z",
 "age_days": 57,
 "draft": false,
 "labels": [
  "Tests"
 ],
 "milestone": null,
 "base": "master",
 "head_sha": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e",
 "head_ref": "macos-cross-ci-test",
 "head_repo": "willcl-ark/bitcoin",
 "head_history": [
  {
   "t": "2026-07-22T14:28:22Z",
   "sha": "ab86ef440b41cef58ff629e35166f7d14f611a05"
  },
  {
   "t": "2026-09-11T08:43:52Z",
   "sha": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e"
  }
 ],
 "additions": 127,
 "deletions": 6,
 "changed_files": 3,
 "commit_count": 3,
 "size_bucket": "M",
 "mergeable_state": "clean",
 "bot": {
  "drahtbot": {
   "present": true,
   "reviews": {
    "concept_ack": [
     {
      "login": "fanquake",
      "url": "https://github.com/bitcoin/bitcoin/pull/35774#issuecomment-5059068637"
     }
    ]
   },
   "conflicts": []
  }
 },
 "acks_parsed": {
  "fanquake": {
   "kind": "concept_ack",
   "hash": null,
   "t": "2026-07-23T13:38:18Z",
   "stale": false
  }
 },
 "acks_tally": {
  "ack": 0,
  "stale_ack": 0,
  "concept_ack": 1,
  "approach_ack": 0,
  "nack": 0,
  "concept_nack": 0,
  "approach_nack": 0
 },
 "reviews": {
  "approved": 0,
  "changes_requested": 0,
  "distinct_reviewers": [
   "fanquake",
   "maflcko",
   "sedited"
  ]
 },
 "signals": {
  "needs_rebase": false,
  "ci_failed": false,
  "mergeable_state": "clean",
  "last_author_activity": "2026-09-11T08:44:02Z",
  "last_reviewer_activity": "2026-09-11T08:42:29Z",
  "last_reviewer": "sedited",
  "author_silent_days": 6,
  "waiting_on_author_days": 0,
  "days_since_update": 4
 },
 "refs": {
  "mentioned": [
   35771,
   35838
  ],
  "depends_on": [],
  "fixes": [],
  "linked_issues": [],
  "references": [
   {
    "number": 35771,
    "type": "issue",
    "state": "closed",
    "merged": false,
    "merged_at": null,
    "title": "gui:  `test_bitcoin-qt` segfaults on macOS if built from depends"
   },
   {
    "number": 35838,
    "type": "pull",
    "state": "closed",
    "merged": true,
    "merged_at": "2026-07-30",
    "title": "qa: Enable `interface_gui.py` on macOS"
   }
  ],
  "conflicts": []
 },
 "stack": {
  "shares_commits_with": [],
  "based_on": [],
  "base_for": []
 },
 "review_paths": [
  ".github/workflows/ci.yml",
  "ci/test/00_setup_env_mac_cross.sh"
 ],
 "body": "Currently we have some macos cross-built binaries, which are using depends as opposed to brew in the native macos builds, but these binaries are not being tested, culminating in silent breakages like #35771\n\nBuild `test_bitcoin-qt` in `macos_cross`, and test the binaries in a subsequent job.\n\nthe macos_cross job is removed from `ci-matrix` as otherwise the new `macos-cross-arm64` test job has to wait for all matrix jobs to finish (successfully) before running. This includes some of our slow jobs, and will needlessly inflate CI runtimes.\n\nDoing this does add some more boilerplate into ci.yml, but IMO this is acceptable (and the best option currently).",
 "commits": [
  {
   "sha": "e6566e4e84d43076900e7ad9aa4927f5bba6d249",
   "date": "2026-09-11T08:43:25Z",
   "message": "ci: enable cross-archive/os caching\n\nThis allows cross-built binaries to be shared with a native host."
  },
  {
   "sha": "134b0c837c686b4508a02fdb33758557e23959e4",
   "date": "2026-09-11T08:43:26Z",
   "message": "ci: move macos cross into own job\n\nInclude new binary caching steps needed in the dependant job."
  },
  {
   "sha": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e",
   "date": "2026-09-11T08:43:27Z",
   "message": "ci: test macos cross arm64 binaries\n\nRun test_bitcoin and test_bitcoin-qt on native hardware."
  }
 ],
 "timeline": [
  {
   "t": "2026-07-22T13:15:09Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e",
   "in_reply_to": null,
   "text": "Seems a bit tedious to use the cache for this? Why not use a artifact, like the pre-existing windows tests and like d40e61e87cfb18f75742c2efa6e705f38e3b36c9?"
  },
  {
   "t": "2026-07-22T13:16:57Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e",
   "in_reply_to": null,
   "text": "This must be frozen to `record-frozen-commit`, otherwise, the CI  will fail due to non-determinism?"
  },
  {
   "t": "2026-07-22T13:19:18Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": "ci/test/00_setup_env_mac_cross.sh",
   "commit": "a74438ce1a7910ab94043e316bbe1accd8f90f4b",
   "in_reply_to": null,
   "text": "Why this change?\n\nhttps://github.com/bitcoin/bitcoin/actions/runs/29913431596/job/88901563802#step:11:2144"
  },
  {
   "t": "2026-07-22T13:54:24Z",
   "kind": "review_comment",
   "who": "willcl-ark",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e",
   "in_reply_to": 3630496962,
   "text": "I intentionally used cache vs artefact as Warp don't have an [upload|download]-artifact action, and relying on GH infra upload/download speed has been ... not the most ideal thing to do in recent times."
  },
  {
   "t": "2026-07-22T13:58:19Z",
   "kind": "review_comment",
   "who": "willcl-ark",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e",
   "in_reply_to": 3630511588,
   "text": "Done ready for next push"
  },
  {
   "t": "2026-07-22T13:58:53Z",
   "kind": "review_comment",
   "who": "willcl-ark",
   "assoc": "MEMBER",
   "path": "ci/test/00_setup_env_mac_cross.sh",
   "commit": "a74438ce1a7910ab94043e316bbe1accd8f90f4b",
   "in_reply_to": 3630528874,
   "text": "Because I didn't realise deploy was already building that :)\n\nCommit will be dropped in next push."
  },
  {
   "t": "2026-07-22T14:28:22Z",
   "kind": "force_push",
   "who": "willcl-ark",
   "commit": "ab86ef440b41cef58ff629e35166f7d14f611a05"
  },
  {
   "t": "2026-07-23T13:38:18Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "Concept ACK given #35771. Similar to Windows, we should have a CI that is natively testing the release-like cross built bins."
  },
  {
   "t": "2026-07-30T11:06:18Z",
   "kind": "comment",
   "who": "fanquake",
   "assoc": "MEMBER",
   "text": "Could rebase, and put this on top of #35838?"
  },
  {
   "t": "2026-07-30T12:01:33Z",
   "kind": "review_comment",
   "who": "maflcko",
   "assoc": "MEMBER",
   "path": ".github/workflows/ci.yml",
   "commit": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e",
   "in_reply_to": 3630496962,
   "text": "Hmm, yeah, the GH cache seemed  slow at some point in the past, but is it also true for artifacts?\n\nSide-topic: macOS/Windows are still using the GHA cache and moving Windows was closed in https://github.com/bitcoin/bitcoin/pull/35683\n\nAlso, the GHA cache is still 200GB, so maybe it can be reduced again a bit (maybe to 20GB), given that only macOS/Windows are using it?\n\nAlso, the windows-cross-to-native tasks are still using artifacts.\n\nNo strong opinion. I just wonder if artifcats are also slow and if inconsistent handling is worth it."
  },
  {
   "t": "2026-09-11T08:42:29Z",
   "kind": "comment",
   "who": "sedited",
   "assoc": "MEMBER",
   "text": "@willcl-ark can you do the requested rebase here?"
  },
  {
   "t": "2026-09-11T08:43:52Z",
   "kind": "force_push",
   "who": "willcl-ark",
   "commit": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e"
  },
  {
   "t": "2026-09-11T08:44:02Z",
   "kind": "comment",
   "who": "willcl-ark",
   "assoc": "MEMBER",
   "text": "Rebased"
  }
 ],
 "labels_log": [
  {
   "t": "2026-07-22T13:04:20Z",
   "action": "labeled",
   "label": "Tests",
   "who": "DrahtBot"
  },
  {
   "t": "2026-07-22T14:04:49Z",
   "action": "labeled",
   "label": "CI failed",
   "who": "DrahtBot"
  },
  {
   "t": "2026-07-22T15:51:05Z",
   "action": "unlabeled",
   "label": "CI failed",
   "who": "DrahtBot"
  }
 ],
 "state_log": [
  {
   "t": "2026-07-22T14:53:35Z",
   "kind": "ready_for_review",
   "who": "willcl-ark"
  }
 ],
 "text_chars": 2459,
 "text_tokens_estimate": 614,
 "changed_paths": [
  ".github/actions/cache/restore/internal/action.yml",
  ".github/actions/cache/save/internal/action.yml",
  ".github/workflows/ci.yml"
 ],
 "files": [
  {
   "path": ".github/actions/cache/restore/internal/action.yml",
   "add": 11,
   "del": 0
  },
  {
   "path": ".github/actions/cache/save/internal/action.yml",
   "add": 11,
   "del": 0
  },
  {
   "path": ".github/workflows/ci.yml",
   "add": 105,
   "del": 6
  }
 ],
 "test_lines": 0,
 "git": {
  "head": "735c2bc0bbeb451e9be8e7ffc7c76c0b44275c0e",
  "head_matches_backup": true,
  "base": "1a4e034ddbdcd15093ff34cb7782467093d8596a",
  "commits": [
   {
    "sha": "e6566e4e84",
    "subject": "ci: enable cross-archive/os caching",
    "files": 2,
    "add": 22,
    "del": 0
   },
   {
    "sha": "134b0c837c",
    "subject": "ci: move macos cross into own job",
    "files": 1,
    "add": 65,
    "del": 6
   },
   {
    "sha": "735c2bc0bb",
    "subject": "ci: test macos cross arm64 binaries",
    "files": 1,
    "add": 40,
    "del": 0
   }
  ],
  "patch_truncated": false
 },
 "input_hash": "15478c4a693445ca",
 "extracted_at": "2026-09-17T16:15:31+00:00"
}