mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-06 03:36:18 +00:00
ci: Download script_assets_test.json for Windows CI
This commit is contained in:
parent
7777a13306
commit
fa7612f253
8
.github/ci-windows-cross.py
vendored
8
.github/ci-windows-cross.py
vendored
@ -10,6 +10,9 @@ import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.append(str(Path(__file__).resolve().parent.parent / "test"))
|
||||
from download_utils import download_script_assets
|
||||
|
||||
|
||||
def run(cmd, **kwargs):
|
||||
print("+ " + shlex.join(cmd), flush=True)
|
||||
@ -81,6 +84,9 @@ def prepare_tests():
|
||||
run(cmd_download_prev_rel)
|
||||
run([sys.executable, "-m", "pip", "install", "pyzmq"])
|
||||
|
||||
dest = workspace / "unit_test_data"
|
||||
download_script_assets(dest)
|
||||
|
||||
|
||||
def run_functional_tests():
|
||||
workspace = Path.cwd()
|
||||
@ -117,6 +123,8 @@ def run_functional_tests():
|
||||
|
||||
|
||||
def run_unit_tests():
|
||||
workspace = Path.cwd()
|
||||
os.environ["DIR_UNIT_TEST_DATA"] = str(workspace / "unit_test_data")
|
||||
# Can't use ctest here like other jobs as we don't have a CMake build tree.
|
||||
commands = [
|
||||
["./bin/test_bitcoin-qt.exe"],
|
||||
|
||||
16
.github/ci-windows.py
vendored
16
.github/ci-windows.py
vendored
@ -10,6 +10,9 @@ import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.append(str(Path(__file__).resolve().parent.parent / "test"))
|
||||
from download_utils import download_script_assets
|
||||
|
||||
|
||||
def run(cmd, **kwargs):
|
||||
print("+ " + shlex.join(cmd), flush=True)
|
||||
@ -103,10 +106,13 @@ def check_manifests(ci_type):
|
||||
|
||||
|
||||
def prepare_tests(ci_type):
|
||||
workspace = Path.cwd()
|
||||
if ci_type == "standard":
|
||||
run([sys.executable, "-m", "pip", "install", "pyzmq"])
|
||||
dest = workspace / "unit_test_data"
|
||||
download_script_assets(dest)
|
||||
elif ci_type == "fuzz":
|
||||
repo_dir = str(Path.cwd() / "qa-assets")
|
||||
repo_dir = str(workspace / "qa-assets")
|
||||
clone_cmd = [
|
||||
"git",
|
||||
"clone",
|
||||
@ -120,11 +126,13 @@ def prepare_tests(ci_type):
|
||||
|
||||
|
||||
def run_tests(ci_type):
|
||||
build_dir = Path.cwd() / "build"
|
||||
workspace = Path.cwd()
|
||||
build_dir = workspace / "build"
|
||||
num_procs = str(os.process_cpu_count())
|
||||
release_bin = build_dir / "bin" / "Release"
|
||||
|
||||
if ci_type == "standard":
|
||||
os.environ["DIR_UNIT_TEST_DATA"] = str(workspace / "unit_test_data")
|
||||
test_envs = {
|
||||
"BITCOIN_BIN": "bitcoin.exe",
|
||||
"BITCOIND": "bitcoind.exe",
|
||||
@ -157,7 +165,7 @@ def run_tests(ci_type):
|
||||
"--jobs",
|
||||
num_procs,
|
||||
"--quiet",
|
||||
f"--tmpdirprefix={Path.cwd()}",
|
||||
f"--tmpdirprefix={workspace}",
|
||||
"--combinedlogslen=99999999",
|
||||
*shlex.split(os.environ.get("TEST_RUNNER_EXTRA", "").strip()),
|
||||
]
|
||||
@ -172,7 +180,7 @@ def run_tests(ci_type):
|
||||
num_procs,
|
||||
"--loglevel",
|
||||
"DEBUG",
|
||||
str(Path.cwd() / "qa-assets" / "fuzz_corpora"),
|
||||
str(workspace / "qa-assets" / "fuzz_corpora"),
|
||||
]
|
||||
run(fuzz_cmd)
|
||||
|
||||
|
||||
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
@ -432,13 +432,12 @@ jobs:
|
||||
- name: Check executable manifests
|
||||
run: py -3 .github/ci-windows-cross.py check_manifests
|
||||
|
||||
- name: Prepare Windows test environment
|
||||
run: py -3 .github/ci-windows-cross.py prepare_tests
|
||||
|
||||
- name: Run unit tests
|
||||
run: py -3 .github/ci-windows-cross.py run_unit_tests
|
||||
|
||||
- name: Prepare Windows test environment
|
||||
run: |
|
||||
py -3 .github/ci-windows-cross.py prepare_tests
|
||||
|
||||
- name: Run functional tests
|
||||
env:
|
||||
TEST_RUNNER_EXTRA: "--timeout-factor=${{ env.TEST_RUNNER_TIMEOUT_FACTOR }} ${{ case(github.event_name == 'pull_request', '', '--extended') }}"
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or https://opensource.org/license/mit/.
|
||||
|
||||
import sys
|
||||
import time
|
||||
import urllib.request
|
||||
|
||||
@ -46,3 +47,19 @@ def download_from_url(url, archive):
|
||||
raise RuntimeError(f"Download incomplete: expected {total_size} bytes, got {progress_bytes} bytes")
|
||||
|
||||
print('\n', flush=True, end="") # Flush to avoid error output on the same line.
|
||||
|
||||
|
||||
def download_script_assets(script_assets_dir):
|
||||
script_assets_dir.mkdir(parents=True, exist_ok=True)
|
||||
script_assets = script_assets_dir / "script_assets_test.json"
|
||||
url = "https://github.com/bitcoin-core/qa-assets/raw/main/unit_test_data/script_assets_test.json"
|
||||
try:
|
||||
download_from_url(url, script_assets)
|
||||
except Exception as e:
|
||||
print(f"\nDownload failed: {e}", file=sys.stderr)
|
||||
print("Retrying download after failure ...", file=sys.stderr)
|
||||
time.sleep(12)
|
||||
try:
|
||||
download_from_url(url, script_assets)
|
||||
except Exception as e2:
|
||||
sys.exit(e2)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user