|
|
|
name: bitcoin-core-ci
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
runs-on: windows-latest
|
|
|
|
env:
|
|
|
|
PYTHONUTF8: 1
|
|
|
|
QT_DOWNLOAD_URL: 'https://github.com/sipsorcery/qt_win_binary/releases/download/v1.6/Qt5.9.8_x64_static_vs2019.zip'
|
|
|
|
QT_DOWNLOAD_HASH: '9a8c6eb20967873785057fdcd329a657c7f922b0af08c5fde105cc597dd37e21'
|
|
|
|
QT_LOCAL_PATH: 'C:\Qt5.9.8_x64_static_vs2019'
|
|
|
|
VCPKG_INSTALL_PATH: "$env:VCPKG_INSTALLATION_ROOT/installed"
|
|
|
|
PLATFORM: x64
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- uses: actions/setup-python@v1
|
|
|
|
with:
|
|
|
|
python-version: '3.7' # Needed for PEP 540
|
|
|
|
|
|
|
|
- name: Setup MSBuild.exe
|
|
|
|
uses: warrenbuckley/Setup-MSBuild@v1
|
|
|
|
|
|
|
|
- name: Check MSBuild.exe
|
|
|
|
run: MSBuild.exe -version | Out-File -FilePath $env:GITHUB_WORKSPACE\MSBuild_version
|
|
|
|
|
|
|
|
- uses: actions/cache@v1
|
|
|
|
id: vcpkgcache
|
|
|
|
with:
|
|
|
|
path: C:/vcpkg/installed
|
|
|
|
key: ${{ runner.os }}-vcpkg-${{ hashFiles('MSBuild_version') }}
|
|
|
|
|
|
|
|
- name: Update vcpkg and install packages
|
|
|
|
if: steps.vcpkgcache.outputs.cache-hit != 'true'
|
|
|
|
run: |
|
|
|
|
$env:PACKAGES = Get-Content -Path "$env:GITHUB_WORKSPACE/build_msvc/vcpkg-packages.txt"
|
|
|
|
Write-Host "vcpkg list: $env:PACKAGES"
|
|
|
|
cd $env:VCPKG_INSTALLATION_ROOT
|
|
|
|
git pull origin master
|
|
|
|
.\bootstrap-vcpkg.bat
|
|
|
|
.\vcpkg install --triplet $env:PLATFORM-windows-static $env:PACKAGES.split() > $null
|
|
|
|
- name: Install prebuilt Qt libraries
|
|
|
|
run: |
|
|
|
|
if(!(Test-Path -Path ($env:QT_LOCAL_PATH))) {
|
|
|
|
Write-Host "Downloading Qt binaries.";
|
|
|
|
Invoke-WebRequest -Uri $env:QT_DOWNLOAD_URL -Out qtdownload.zip;
|
|
|
|
Write-Host "Qt binaries successfully downloaded, checking hash against $env:QT_DOWNLOAD_HASH...";
|
|
|
|
if((Get-FileHash qtdownload.zip).Hash -eq $env:QT_DOWNLOAD_HASH) {
|
|
|
|
Expand-Archive qtdownload.zip -DestinationPath $env:QT_LOCAL_PATH;
|
|
|
|
Write-Host "Qt binary download matched the expected hash.";
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
Write-Host "ERROR: Qt binary download did not match the expected hash.";
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
Write-Host "Qt binaries already present.";
|
|
|
|
}
|
|
|
|
- name: Generate project files
|
|
|
|
run: python build_msvc\msvc-autogen.py
|
|
|
|
- name: vcpkg integration
|
|
|
|
run: C:/vcpkg/vcpkg.exe integrate install
|
|
|
|
- name: Build
|
|
|
|
run: msbuild build_msvc\bitcoin.sln /m /v:n /p:Configuration=Release
|
|
|
|
- name: Run test_bitcoin
|
|
|
|
shell: cmd
|
|
|
|
run: src\test_bitcoin.exe -k stdout -e stdout 2> NUL
|
|
|
|
- name: Run bench_bitcoin
|
|
|
|
shell: cmd
|
|
|
|
run: src\bench_bitcoin.exe -evals=1 -scaling=0 > NUL
|
|
|
|
- name: bitcoin-util-test
|
|
|
|
run: python test\util\bitcoin-util-test.py
|
|
|
|
- name: rpcauth-test
|
|
|
|
shell: cmd
|
|
|
|
run: python test\util\rpcauth-test.py
|
|
|
|
- name: test_runner
|
|
|
|
shell: cmd
|
|
|
|
run: |
|
|
|
|
python test\functional\test_runner.py --ansi --ci --quiet --combinedlogslen=4000 --failfast --exclude feature_fee_estimation
|