aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
blob: 1e15ec5f4bffd70ec03b5a75993dd28b10ab77b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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