ci: [refactor] Move github_import_vs_env to python script
Also, change the yaml anchor name and the step name. Also, small refactors while touching the files.
This commit is contained in:
3 files changed
+45
-46
No files matched your search
@@ -134,13 +134,13 @@ def run_unit_tests():
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(description="Utility to run Windows CI steps.")
|
parser = argparse.ArgumentParser(description="Utility to run Windows CI steps.")
|
||||||
steps = [
|
steps = list(map(lambda f: f.__name__, [
|
||||||
"print_version",
|
print_version,
|
||||||
"check_manifests",
|
check_manifests,
|
||||||
"prepare_tests",
|
prepare_tests,
|
||||||
"run_unit_tests",
|
run_unit_tests,
|
||||||
"run_functional_tests",
|
run_functional_tests,
|
||||||
]
|
]))
|
||||||
parser.add_argument("step", choices=steps, help="CI step to perform.")
|
parser.add_argument("step", choices=steps, help="CI step to perform.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@@ -149,16 +149,7 @@ def main():
|
|||||||
str(Path.cwd() / "previous_releases"),
|
str(Path.cwd() / "previous_releases"),
|
||||||
)
|
)
|
||||||
|
|
||||||
if args.step == "print_version":
|
exec(f'{args.step}()')
|
||||||
print_version()
|
|
||||||
elif args.step == "check_manifests":
|
|
||||||
check_manifests()
|
|
||||||
elif args.step == "prepare_tests":
|
|
||||||
prepare_tests()
|
|
||||||
elif args.step == "run_unit_tests":
|
|
||||||
run_unit_tests()
|
|
||||||
elif args.step == "run_functional_tests":
|
|
||||||
run_functional_tests()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
+33
-18
@@ -38,6 +38,29 @@ GENERATE_OPTIONS = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def github_import_vs_env(_ci_type):
|
||||||
|
vswhere_path = Path(os.environ["ProgramFiles(x86)"]) / "Microsoft Visual Studio" / "Installer" / "vswhere.exe"
|
||||||
|
installation_path = run(
|
||||||
|
[str(vswhere_path), "-latest", "-property", "installationPath"],
|
||||||
|
capture_output=True,
|
||||||
|
text=True,
|
||||||
|
).stdout.strip()
|
||||||
|
vsdevcmd = Path(installation_path) / "Common7" / "Tools" / "vsdevcmd.bat"
|
||||||
|
comspec = os.environ["COMSPEC"]
|
||||||
|
output = run(
|
||||||
|
f'"{comspec}" /s /c ""{vsdevcmd}" -arch=x64 -no_logo && set"',
|
||||||
|
capture_output=True,
|
||||||
|
text=True,
|
||||||
|
).stdout
|
||||||
|
github_env = os.environ["GITHUB_ENV"]
|
||||||
|
with open(github_env, "a") as env_file:
|
||||||
|
for line in output.splitlines():
|
||||||
|
if "=" not in line:
|
||||||
|
continue
|
||||||
|
name, value = line.split("=", 1)
|
||||||
|
env_file.write(f"{name}={value}\n")
|
||||||
|
|
||||||
|
|
||||||
def generate(ci_type):
|
def generate(ci_type):
|
||||||
command = [
|
command = [
|
||||||
"cmake",
|
"cmake",
|
||||||
@@ -50,7 +73,7 @@ def generate(ci_type):
|
|||||||
run(command)
|
run(command)
|
||||||
|
|
||||||
|
|
||||||
def build():
|
def build(_ci_type):
|
||||||
command = [
|
command = [
|
||||||
"cmake",
|
"cmake",
|
||||||
"--build",
|
"--build",
|
||||||
@@ -180,26 +203,18 @@ def run_tests(ci_type):
|
|||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser(description="Utility to run Windows CI steps.")
|
parser = argparse.ArgumentParser(description="Utility to run Windows CI steps.")
|
||||||
parser.add_argument("ci_type", choices=GENERATE_OPTIONS, help="CI type to run.")
|
parser.add_argument("ci_type", choices=GENERATE_OPTIONS, help="CI type to run.")
|
||||||
steps = [
|
steps = list(map(lambda f: f.__name__, [
|
||||||
"generate",
|
github_import_vs_env,
|
||||||
"build",
|
generate,
|
||||||
"check_manifests",
|
build,
|
||||||
"prepare_tests",
|
check_manifests,
|
||||||
"run_tests",
|
prepare_tests,
|
||||||
]
|
run_tests,
|
||||||
|
]))
|
||||||
parser.add_argument("step", choices=steps, help="CI step to perform.")
|
parser.add_argument("step", choices=steps, help="CI step to perform.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.step == "generate":
|
exec(f'{args.step}("{args.ci_type}")')
|
||||||
generate(args.ci_type)
|
|
||||||
elif args.step == "build":
|
|
||||||
build()
|
|
||||||
elif args.step == "check_manifests":
|
|
||||||
check_manifests(args.ci_type)
|
|
||||||
elif args.step == "prepare_tests":
|
|
||||||
prepare_tests(args.ci_type)
|
|
||||||
elif args.step == "run_tests":
|
|
||||||
run_tests(args.ci_type)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -227,16 +227,9 @@ jobs:
|
|||||||
|
|
||||||
- *CHECKOUT
|
- *CHECKOUT
|
||||||
|
|
||||||
- &SET_UP_VS
|
- &IMPORT_VS_ENV
|
||||||
name: Set up VS Developer Prompt
|
name: Import Visual Studio env vars
|
||||||
shell: pwsh -Command "$PSVersionTable; $PSNativeCommandUseErrorActionPreference = $true; $ErrorActionPreference = 'Stop'; & '{0}'"
|
run: py -3 .github/ci-windows.py "standard" github_import_vs_env
|
||||||
run: |
|
|
||||||
$vswherePath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
|
|
||||||
$installationPath = & $vswherePath -latest -property installationPath
|
|
||||||
& "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x64 -no_logo && set" | foreach-object {
|
|
||||||
$name, $value = $_ -split '=', 2
|
|
||||||
echo "$name=$value" >> $env:GITHUB_ENV
|
|
||||||
}
|
|
||||||
|
|
||||||
- name: Get tool information
|
- name: Get tool information
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
@@ -418,7 +411,7 @@ jobs:
|
|||||||
- name: Run bitcoind.exe
|
- name: Run bitcoind.exe
|
||||||
run: py -3 .github/ci-windows-cross.py print_version
|
run: py -3 .github/ci-windows-cross.py print_version
|
||||||
|
|
||||||
- *SET_UP_VS
|
- *IMPORT_VS_ENV
|
||||||
|
|
||||||
- name: Check executable manifests
|
- name: Check executable manifests
|
||||||
run: py -3 .github/ci-windows-cross.py check_manifests
|
run: py -3 .github/ci-windows-cross.py check_manifests
|
||||||
|
|||||||
Reference in new issue
Block a user