10 Commits

Author SHA1 Message Date
Hennadii Stepanov
b65ff0e5a1
Merge bitcoin/bitcoin#34548: ci: Add and use ci-windows-cross.py helper
fa13b13239e53b7198eabab2a3771277a2b433e1 ci: [refactor] Use pathlib over os.path (MarcoFalke)
fa2719ab1ba2252b53609e254413a38ac2097dc9 ci: [refactor] Move run_unit_tests to ci-windows-cross.py (MarcoFalke)
fa99ba5f14d4c7fbc48188504a1668d8e5106c77 ci: Set PREVIOUS_RELEASES_DIR env var in ci-windows-cross.py (MarcoFalke)
fa4a1cab6c179de4e48b574e0a325c74ab7a25f7 ci: Move run_functional_tests into ci-windows-cross.py (MarcoFalke)
1111108685ec0fd09b1e288b07c2b7982fc017e0 ci: [refactor] Move pyzmq install and get_previous_releases into ci-windows-cross.py (MarcoFalke)
fac9c7bd6635d59617949564b1c8075b8537a16b ci: [refactor] Move config.ini rewrite to ci-windows-cross.py (MarcoFalke)
faf738946668b6ec16de37298e5a1da23ed77222 ci: Move check_manifests step to ci-windows-cross.py (MarcoFalke)
fa674d55df57ac0b60f3aa9c9dfec0ae53e8af14 ci: [refactor] Move print_version step into ci-windows-cross.py helper (MarcoFalke)

Pull request description:

  Currently the ci yaml has a mix of Bash and Pwsh snippets, which is problematic:

  * The `shellcheck` tool does not review the Bash
  * The ci yaml is not merged with master on re-runs, but the code is, leading to possibly confusing CI errors on re-runs
  * The Pwsh isn't reviewed at all by any tool
  * It is tedious to run the CI commands locally on Windows

  Fix all issues by extracting them into a step-based Python script.

ACKs for top commit:
  janb84:
    re ACK fa13b13239e53b7198eabab2a3771277a2b433e1
  hebasto:
    ACK fa13b13239e53b7198eabab2a3771277a2b433e1, I have reviewed the code and it looks OK.

Tree-SHA512: 23d21d3bfb07e102fe1cc15ba5749d553d9766ae6c4a7648bd77df0705469bd138c76a9a2fdeb4d91d3f889a425b7caf25878ecb2e68b604faf9665f8df4eb6d
2026-02-13 14:31:35 +00:00
Hennadii Stepanov
7164a0cab6
build: Bump VS minimum supported version to 18.3 2026-02-10 23:30:23 +00:00
MarcoFalke
fa13b13239
ci: [refactor] Use pathlib over os.path 2026-02-10 14:25:33 +01:00
MarcoFalke
fa9627af9f
ci: Rely on cmake --preset toolchain file
This is the standard approach and avoids relying on
VCPKG_INSTALLATION_ROOT and -DCMAKE_TOOLCHAIN_FILE= in the ci-windows.py
script.

This makes it easier to run locally.
2026-02-09 09:20:02 +01:00
MarcoFalke
fa3f89acaa
ci: Add check_manifests to ci-windows.py
This is mostly a refactor, except for placing the bitcoind.manifest into
a different folder.
2026-02-09 09:19:17 +01:00
MarcoFalke
1111079a16
ci: Add run_tests step to ci-windows.py
This is mostly a refactor, except for using the runner workspace (cwd) for:
* fuzz qa-assets
* functional temp prefix

This makes it easier to run the ci-windows.py locally.
2026-02-09 09:18:39 +01:00
MarcoFalke
fa561682ce
ci: [refactor] Add .github/ci-windows.py prepare_tests step 2026-02-06 09:54:28 +01:00
MarcoFalke
fa3e607c6d
ci: Print verbose Windows CI build failure 2026-02-06 08:55:42 +01:00
MarcoFalke
4444808dd3
ci: [refactor] Add .github/ci-windows.py build step
Note, the use of process_cpu_count() is intentional. It was only added
in Python 3.13, according to
https://docs.python.org/3/library/os.html#os.process_cpu_count .

However, Python 3.13 is also the minimum required version on Windows,
according to
https://github.com/bitcoin/bitcoin/issues/29897#issuecomment-2940318094
to avoid intermittent test failures.
2026-02-06 08:54:26 +01:00
MarcoFalke
fabdd4e823
ci: Refactor Windows CI into script
This makes it easier to:

* Run the exact command of any CI type and step locally
* Re-Run older CI tasks on GHA and using the latest merged config.
  (.github/ci-windows.py is merged with master on re-runs, but
  .github/workflows/ci.yml is NOT)

Also, writing it in Python has benefits:

* Any developer (even non-Windows ones) can read and modify the script.
* Python is already required for tests, so no new dependency is needed.
2026-02-06 08:54:12 +01:00