mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-31 10:41:08 +00:00
ci: Add Windows + UCRT jobs for cross-compiling and native testing
Co-authored-by: will <will@256k1.dev>
This commit is contained in:
parent
bd130db994
commit
2e27bd9c3a
38
.github/workflows/ci.yml
vendored
38
.github/workflows/ci.yml
vendored
@ -343,14 +343,26 @@ jobs:
|
||||
run: |
|
||||
py -3 test/fuzz/test_runner.py --par $NUMBER_OF_PROCESSORS --loglevel DEBUG "${RUNNER_TEMP}/qa-assets/fuzz_corpora"
|
||||
|
||||
windows-msvcrt-cross:
|
||||
name: 'Windows-cross to x86_64, MSVCRT'
|
||||
windows-cross:
|
||||
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_msvcrt.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
|
||||
@ -387,10 +399,20 @@ jobs:
|
||||
${{ env.BASE_BUILD_DIR }}/src/univalue/*.exe
|
||||
${{ env.BASE_BUILD_DIR }}/test/config.ini
|
||||
|
||||
windows-msvcrt-native-test:
|
||||
name: 'Windows, MSVCRT, test cross-built'
|
||||
windows-native-test:
|
||||
name: 'Windows, ${{ matrix.crt }}, test cross-built'
|
||||
runs-on: windows-2022
|
||||
needs: windows-msvcrt-cross
|
||||
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
|
||||
@ -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
|
||||
|
||||
23
ci/test/00_setup_env_win64.sh
Executable file
23
ci/test/00_setup_env_win64.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# 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/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"
|
||||
export BITCOIN_CONFIG="\
|
||||
--preset=dev-mode \
|
||||
-DENABLE_IPC=OFF \
|
||||
-DWITH_USDT=OFF \
|
||||
-DREDUCE_EXPORTS=ON \
|
||||
-DCMAKE_CXX_FLAGS='-Wno-error=maybe-uninitialized' \
|
||||
"
|
||||
Loading…
x
Reference in New Issue
Block a user