You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bitcoin/.github/workflows/ci.yml

82 lines
3.0 KiB

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
5 years ago
- 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