mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-18 08:32:30 +01:00
Merge bitcoin/bitcoin#33764: ci: Add Windows + UCRT jobs for cross-compiling and native testing
2e27bd9c3aci: Add Windows + UCRT jobs for cross-compiling and native testing (Hennadii Stepanov)bd130db994ci: Rename items specific to Windows + MSVCRT (Hennadii Stepanov) Pull request description: This PR is part of the ongoing effort to migrate to the modern UCRT runtime for cross-compiled Windows binaries, including release builds. For more details about this migration, see: - https://github.com/bitcoin/bitcoin/issues/30210 - https://github.com/bitcoin/bitcoin/pull/33593 MSVCRT-related CI jobs should be removed from the CI framework once the migration to UCRT is complete. ACKs for top commit: maflcko: review ACK2e27bd9c3a🖊 fanquake: ACK2e27bd9c3aTree-SHA512: 222ca5e54646bcce9db6e20191d5891e988274e18b2f30085de6435a3b288a9d0fc414e8f76342e275ae58ee6603f751933d1faa8bdff446edf2695091f8ca4c
This commit is contained in:
32
.github/workflows/ci.yml
vendored
32
.github/workflows/ci.yml
vendored
@@ -344,13 +344,25 @@ jobs:
|
||||
py -3 test/fuzz/test_runner.py --par $NUMBER_OF_PROCESSORS --loglevel DEBUG "${RUNNER_TEMP}/qa-assets/fuzz_corpora"
|
||||
|
||||
windows-cross:
|
||||
name: 'Windows-cross to x86_64'
|
||||
name: 'Windows-cross to x86_64, ${{ matrix.crt }}'
|
||||
needs: runners
|
||||
runs-on: ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-sm' || 'ubuntu-24.04' }}
|
||||
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
crt: [msvcrt, ucrt]
|
||||
include:
|
||||
- crt: msvcrt
|
||||
file-env: './ci/test/00_setup_env_win64_msvcrt.sh'
|
||||
artifact-name: 'x86_64-w64-mingw32-executables'
|
||||
- crt: ucrt
|
||||
file-env: './ci/test/00_setup_env_win64.sh'
|
||||
artifact-name: 'x86_64-w64-mingw32ucrt-executables'
|
||||
|
||||
env:
|
||||
FILE_ENV: './ci/test/00_setup_env_win64.sh'
|
||||
FILE_ENV: ${{ matrix.file-env }}
|
||||
DANGER_CI_ON_HOST_FOLDERS: 1
|
||||
|
||||
steps:
|
||||
@@ -379,7 +391,7 @@ jobs:
|
||||
- name: Upload built executables
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: x86_64-w64-mingw32-executables-${{ github.run_id }}
|
||||
name: ${{ matrix.artifact-name }}-${{ github.run_id }}
|
||||
path: |
|
||||
${{ env.BASE_BUILD_DIR }}/bin/*.dll
|
||||
${{ env.BASE_BUILD_DIR }}/bin/*.exe
|
||||
@@ -388,10 +400,20 @@ jobs:
|
||||
${{ env.BASE_BUILD_DIR }}/test/config.ini
|
||||
|
||||
windows-native-test:
|
||||
name: 'Windows, test cross-built'
|
||||
name: 'Windows, ${{ matrix.crt }}, test cross-built'
|
||||
runs-on: windows-2022
|
||||
needs: windows-cross
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
crt: [msvcrt, ucrt]
|
||||
include:
|
||||
- crt: msvcrt
|
||||
artifact-name: 'x86_64-w64-mingw32-executables'
|
||||
- crt: ucrt
|
||||
artifact-name: 'x86_64-w64-mingw32ucrt-executables'
|
||||
|
||||
env:
|
||||
PYTHONUTF8: 1
|
||||
TEST_RUNNER_TIMEOUT_FACTOR: 40
|
||||
@@ -404,7 +426,7 @@ jobs:
|
||||
- name: Download built executables
|
||||
uses: actions/download-artifact@v5
|
||||
with:
|
||||
name: x86_64-w64-mingw32-executables-${{ github.run_id }}
|
||||
name: ${{ matrix.artifact-name }}-${{ github.run_id }}
|
||||
|
||||
- name: Run bitcoind.exe
|
||||
run: ./bin/bitcoind.exe -version
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (c) 2019-present The Bitcoin Core developers
|
||||
# Copyright (c) 2025-present The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
export LC_ALL=C.UTF-8
|
||||
|
||||
export CONTAINER_NAME=ci_win64
|
||||
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04" # Check that https://packages.ubuntu.com/noble/g++-mingw-w64-x86-64-posix (version 13.x, similar to guix) can cross-compile
|
||||
export HOST=x86_64-w64-mingw32
|
||||
export PACKAGES="g++-mingw-w64-x86-64-posix nsis"
|
||||
export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie" # Check that https://packages.debian.org/trixie/g++-mingw-w64-ucrt64 can cross-compile
|
||||
export HOST=x86_64-w64-mingw32ucrt
|
||||
export DEP_OPTS="CC=${HOST}-gcc CXX=${HOST}-g++"
|
||||
export PACKAGES="g++-mingw-w64-ucrt64 nsis"
|
||||
export RUN_UNIT_TESTS=false
|
||||
export RUN_FUNCTIONAL_TESTS=false
|
||||
export GOAL="deploy"
|
||||
|
||||
22
ci/test/00_setup_env_win64_msvcrt.sh
Executable file
22
ci/test/00_setup_env_win64_msvcrt.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Copyright (c) 2019-present The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
export LC_ALL=C.UTF-8
|
||||
|
||||
export CONTAINER_NAME=ci_win64_msvcrt
|
||||
export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04" # Check that https://packages.ubuntu.com/noble/g++-mingw-w64-x86-64-posix (version 13.x, similar to guix) can cross-compile
|
||||
export HOST=x86_64-w64-mingw32
|
||||
export PACKAGES="g++-mingw-w64-x86-64-posix nsis"
|
||||
export RUN_UNIT_TESTS=false
|
||||
export RUN_FUNCTIONAL_TESTS=false
|
||||
export GOAL="deploy"
|
||||
export BITCOIN_CONFIG="\
|
||||
--preset=dev-mode \
|
||||
-DENABLE_IPC=OFF \
|
||||
-DWITH_USDT=OFF \
|
||||
-DREDUCE_EXPORTS=ON \
|
||||
-DCMAKE_CXX_FLAGS='-Wno-error=maybe-uninitialized' \
|
||||
"
|
||||
Reference in New Issue
Block a user