diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..1e15ec5f4b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,81 @@ +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 |