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