CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
80 lines
2.0 KiB
Python
80 lines
2.0 KiB
Python
#!/usr/bin/env python
|
|
# Copyright Advanced Micro Devices, Inc.
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
|
|
"""Script to install additional requirements.txt files for projects that require additional files for testing.
|
|
|
|
Requires a requirements-file input parameter that is a list of comma separated paths to requirements.txt files.
|
|
This path will always be relative to the absolute path of the OUTPUT_ARTIFACTS_DIR.
|
|
|
|
Usage:
|
|
python install_additional_requirements.py
|
|
(--requirements-files REQUIREMENTS_FILES)
|
|
|
|
Examples:
|
|
|
|
- Install a single requirements.txt file
|
|
```
|
|
python install_additional_requirements.py \
|
|
--requirements-files path/to/requirements.txt
|
|
```
|
|
|
|
- Install multiple requirements.txt files
|
|
```
|
|
python install_additional_requirements.py \
|
|
--requirements-files path/to/requirements.txt,path/to/requirements-test.txt
|
|
```
|
|
|
|
"""
|
|
|
|
import argparse
|
|
import logging
|
|
import os
|
|
import shlex
|
|
import subprocess
|
|
from pathlib import Path
|
|
import sys
|
|
|
|
SCRIPT_DIR = Path(__file__).resolve().parent
|
|
THEROCK_DIR = SCRIPT_DIR.parent
|
|
THEROCK_OUTPUT_DIR = str(
|
|
THEROCK_DIR / os.getenv("OUTPUT_ARTIFACTS_DIR").removeprefix("./")
|
|
)
|
|
|
|
|
|
def install_requirements(req_files_list: str):
|
|
environ_vars = os.environ.copy()
|
|
environ_vars["CC"] = "clang"
|
|
environ_vars["CXX"] = "clang++"
|
|
|
|
requirements_files = req_files_list.split(",")
|
|
|
|
for file in requirements_files:
|
|
cmd = [
|
|
"uv",
|
|
"pip",
|
|
"install",
|
|
"-r",
|
|
f"{THEROCK_OUTPUT_DIR}/{file}",
|
|
]
|
|
logging.info(f"++ Exec [{THEROCK_DIR}]$ {shlex.join(cmd)}")
|
|
subprocess.run(cmd, cwd=THEROCK_DIR, check=True, env=environ_vars)
|
|
|
|
|
|
def main(argv):
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
"--requirements-files",
|
|
type=str,
|
|
default="",
|
|
help="A comma separated list of requirements.txt files to install",
|
|
required=True,
|
|
)
|
|
args = parser.parse_args(argv)
|
|
install_requirements(str(args.requirements_files))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv[1:])
|