Skip to content

Instantly share code, notes, and snippets.

@dhellmann
Created November 13, 2025 22:53
Show Gist options
  • Select an option

  • Save dhellmann/853c085aac090d75b1a5d37f9d85f861 to your computer and use it in GitHub Desktop.

Select an option

Save dhellmann/853c085aac090d75b1a5d37f9d85f861 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
---
stages:
- ".pre"
- lint
- test
- build-images
- bootstrap
- build
- notify
- release
- ".post"
variables:
IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_SHA}"
CONTAINERFILE: Containerfile
CONTEXT: "."
EXTRA_ARGS: ''
BUILDER_IMAGE_VERSION: ci-${CI_MERGE_REQUEST_IID}
WHEEL_SERVER_PROJECT_PREFIX: redhat/rhel-ai/core/wheels
COLLECTION_VERSION: "$PRODUCT_VERSION"
PRODUCT_VERSION: 0.0-el9.6
FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS: true
PUBLISH_WHEEL_RELEASES: false
PRODUCT_NAME: rhoai
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
SECURE_FILES_DOWNLOAD_PATH: "./config"
FROMAGER_NETWORK_ISOLATION: '1'
ARCH: x86_64
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/${COLLECTION}/${VARIANT}-${ARCH}"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/core/wheels/upstream-sdists
PYTHON_VERSION: '3.12'
".build-image":
stage: build
image: quay.io/buildah/stable:v1.40.1
needs: []
script: buildah bud -f ${CONTAINERFILE} --no-cache -t ${IMAGE} ${EXTRA_ARGS} ${CONTEXT}
rules:
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: "$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS"
when: never
".trigger-accelerated-cpu-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_xet-*/*.patch
- overrides/patches/hf_xet/*.patch
- overrides/settings/hf_xet.yaml
- package_plugins/hf_xet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_openmp-*/*.patch
- overrides/patches/intel_openmp/*.patch
- overrides/settings/intel_openmp.yaml
- package_plugins/intel_openmp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_cmplr_lib_ur-*/*.patch
- overrides/patches/intel_cmplr_lib_ur/*.patch
- overrides/settings/intel_cmplr_lib_ur.yaml
- package_plugins/intel_cmplr_lib_ur.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_extension_for_pytorch-*/*.patch
- overrides/patches/intel_extension_for_pytorch/*.patch
- overrides/settings/intel_extension_for_pytorch.yaml
- package_plugins/intel_extension_for_pytorch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch_tb_profiler-*/*.patch
- overrides/patches/torch_tb_profiler/*.patch
- overrides/settings/torch_tb_profiler.yaml
- package_plugins/torch_tb_profiler.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/huggingface_hub-*/*.patch
- overrides/patches/huggingface_hub/*.patch
- overrides/settings/huggingface_hub.yaml
- package_plugins/huggingface_hub.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling-*/*.patch
- overrides/patches/docling/*.patch
- overrides/settings/docling.yaml
- package_plugins/docling.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_core-*/*.patch
- overrides/patches/docling_core/*.patch
- overrides/settings/docling_core.yaml
- package_plugins/docling_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_parse-*/*.patch
- overrides/patches/docling_parse/*.patch
- overrides/settings/docling_parse.yaml
- package_plugins/docling_parse.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_ibm_models-*/*.patch
- overrides/patches/docling_ibm_models/*.patch
- overrides/settings/docling_ibm_models.yaml
- package_plugins/docling_ibm_models.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/trl-*/*.patch
- overrides/patches/trl/*.patch
- overrides/settings/trl.yaml
- package_plugins/trl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llmcompressor-*/*.patch
- overrides/patches/llmcompressor/*.patch
- overrides/settings/llmcompressor.yaml
- package_plugins/llmcompressor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/liger_kernel-*/*.patch
- overrides/patches/liger_kernel/*.patch
- overrides/settings/liger_kernel.yaml
- package_plugins/liger_kernel.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/lm_eval-*/*.patch
- overrides/patches/lm_eval/*.patch
- overrides/settings/lm_eval.yaml
- package_plugins/lm_eval.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab-*/*.patch
- overrides/patches/jupyterlab/*.patch
- overrides/settings/jupyterlab.yaml
- package_plugins/jupyterlab.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server-*/*.patch
- overrides/patches/jupyter_server/*.patch
- overrides/settings/jupyter_server.yaml
- package_plugins/jupyter_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_mathjax-*/*.patch
- overrides/patches/jupyter_server_mathjax/*.patch
- overrides/settings/jupyter_server_mathjax.yaml
- package_plugins/jupyter_server_mathjax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_proxy-*/*.patch
- overrides/patches/jupyter_server_proxy/*.patch
- overrides/settings/jupyter_server_proxy.yaml
- package_plugins/jupyter_server_proxy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_terminals-*/*.patch
- overrides/patches/jupyter_server_terminals/*.patch
- overrides/settings/jupyter_server_terminals.yaml
- package_plugins/jupyter_server_terminals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_git-*/*.patch
- overrides/patches/jupyterlab_git/*.patch
- overrides/settings/jupyterlab_git.yaml
- package_plugins/jupyterlab_git.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbdime-*/*.patch
- overrides/patches/nbdime/*.patch
- overrides/settings/nbdime.yaml
- package_plugins/nbdime.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbgitpuller-*/*.patch
- overrides/patches/nbgitpuller/*.patch
- overrides/settings/nbgitpuller.yaml
- package_plugins/nbgitpuller.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/litellm-*/*.patch
- overrides/patches/litellm/*.patch
- overrides/settings/litellm.yaml
- package_plugins/litellm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llvmlite-*/*.patch
- overrides/patches/llvmlite/*.patch
- overrides/settings/llvmlite.yaml
- package_plugins/llvmlite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/faiss_cpu-*/*.patch
- overrides/patches/faiss_cpu/*.patch
- overrides/settings/faiss_cpu.yaml
- package_plugins/faiss_cpu.py
".trigger-accelerated-gaudi-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/habana_gpu_migration-*/*.patch
- overrides/patches/habana_gpu_migration/*.patch
- overrides/settings/habana_gpu_migration.yaml
- package_plugins/habana_gpu_migration.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/habana_pyhlml-*/*.patch
- overrides/patches/habana_pyhlml/*.patch
- overrides/settings/habana_pyhlml.yaml
- package_plugins/habana_pyhlml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/habana_quantization_toolkit-*/*.patch
- overrides/patches/habana_quantization_toolkit/*.patch
- overrides/settings/habana_quantization_toolkit.yaml
- package_plugins/habana_quantization_toolkit.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/habana_torch_dataloader-*/*.patch
- overrides/patches/habana_torch_dataloader/*.patch
- overrides/settings/habana_torch_dataloader.yaml
- package_plugins/habana_torch_dataloader.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/habana_torch_plugin-*/*.patch
- overrides/patches/habana_torch_plugin/*.patch
- overrides/settings/habana_torch_plugin.yaml
- package_plugins/habana_torch_plugin.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_transformer_engine-*/*.patch
- overrides/patches/intel_transformer_engine/*.patch
- overrides/settings/intel_transformer_engine.yaml
- package_plugins/intel_transformer_engine.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm_hpu_extension-*/*.patch
- overrides/patches/vllm_hpu_extension/*.patch
- overrides/settings/vllm_hpu_extension.yaml
- package_plugins/vllm_hpu_extension.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm_tgis_adapter-*/*.patch
- overrides/patches/vllm_tgis_adapter/*.patch
- overrides/settings/vllm_tgis_adapter.yaml
- package_plugins/vllm_tgis_adapter.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/compressed_tensors-*/*.patch
- overrides/patches/compressed_tensors/*.patch
- overrides/settings/compressed_tensors.yaml
- package_plugins/compressed_tensors.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_cpp_python-*/*.patch
- overrides/patches/llama_cpp_python/*.patch
- overrides/settings/llama_cpp_python.yaml
- package_plugins/llama_cpp_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/symengine-*/*.patch
- overrides/patches/symengine/*.patch
- overrides/settings/symengine.yaml
- package_plugins/symengine.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/lightning_habana-*/*.patch
- overrides/patches/lightning_habana/*.patch
- overrides/settings/lightning_habana.yaml
- package_plugins/lightning_habana.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
".trigger-accelerated-spyre-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm_spyre-*/*.patch
- overrides/patches/vllm_spyre/*.patch
- overrides/settings/vllm_spyre.yaml
- package_plugins/vllm_spyre.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_openmp-*/*.patch
- overrides/patches/intel_openmp/*.patch
- overrides/settings/intel_openmp.yaml
- package_plugins/intel_openmp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_cmplr_lib_ur-*/*.patch
- overrides/patches/intel_cmplr_lib_ur/*.patch
- overrides/settings/intel_cmplr_lib_ur.yaml
- package_plugins/intel_cmplr_lib_ur.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_extension_for_pytorch-*/*.patch
- overrides/patches/intel_extension_for_pytorch/*.patch
- overrides/settings/intel_extension_for_pytorch.yaml
- package_plugins/intel_extension_for_pytorch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ibm_sendnn-*/*.patch
- overrides/patches/ibm_sendnn/*.patch
- overrides/settings/ibm_sendnn.yaml
- package_plugins/ibm_sendnn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch_sendnn-*/*.patch
- overrides/patches/torch_sendnn/*.patch
- overrides/settings/torch_sendnn.yaml
- package_plugins/torch_sendnn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiu_monitor-*/*.patch
- overrides/patches/aiu_monitor/*.patch
- overrides/settings/aiu_monitor.yaml
- package_plugins/aiu_monitor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ibm_fms-*/*.patch
- overrides/patches/ibm_fms/*.patch
- overrides/settings/ibm_fms.yaml
- package_plugins/ibm_fms.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/umf-*/*.patch
- overrides/patches/umf/*.patch
- overrides/settings/umf.yaml
- package_plugins/umf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tcmlib-*/*.patch
- overrides/patches/tcmlib/*.patch
- overrides/settings/tcmlib.yaml
- package_plugins/tcmlib.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/timm-*/*.patch
- overrides/patches/timm/*.patch
- overrides/settings/timm.yaml
- package_plugins/timm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
".trigger-non-accelerated-cpu-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyzmq-*/*.patch
- overrides/patches/pyzmq/*.patch
- overrides/settings/pyzmq.yaml
- package_plugins/pyzmq.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opencv_python_headless-*/*.patch
- overrides/patches/opencv_python_headless/*.patch
- overrides/settings/opencv_python_headless.yaml
- package_plugins/opencv_python_headless.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdfium2-*/*.patch
- overrides/patches/pypdfium2/*.patch
- overrides/settings/pypdfium2.yaml
- package_plugins/pypdfium2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tesserocr-*/*.patch
- overrides/patches/tesserocr/*.patch
- overrides/settings/tesserocr.yaml
- package_plugins/tesserocr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/certifi-*/*.patch
- overrides/patches/certifi/*.patch
- overrides/settings/certifi.yaml
- package_plugins/certifi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fastapi-*/*.patch
- overrides/patches/fastapi/*.patch
- overrides/settings/fastapi.yaml
- package_plugins/fastapi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/meson-*/*.patch
- overrides/patches/meson/*.patch
- overrides/settings/meson.yaml
- package_plugins/meson.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pydantic_core-*/*.patch
- overrides/patches/pydantic_core/*.patch
- overrides/settings/pydantic_core.yaml
- package_plugins/pydantic_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm_multiprocess-*/*.patch
- overrides/patches/tqdm_multiprocess/*.patch
- overrides/settings/tqdm_multiprocess.yaml
- package_plugins/tqdm_multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_pygments-*/*.patch
- overrides/patches/jupyterlab_pygments/*.patch
- overrides/settings/jupyterlab_pygments.yaml
- package_plugins/jupyterlab_pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sacrebleu-*/*.patch
- overrides/patches/sacrebleu/*.patch
- overrides/settings/sacrebleu.yaml
- package_plugins/sacrebleu.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/yarl-*/*.patch
- overrides/patches/yarl/*.patch
- overrides/settings/yarl.yaml
- package_plugins/yarl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/gast-*/*.patch
- overrides/patches/gast/*.patch
- overrides/settings/gast.yaml
- package_plugins/gast.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flit_core-*/*.patch
- overrides/patches/flit_core/*.patch
- overrides/settings/flit_core.yaml
- package_plugins/flit_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kfp-*/*.patch
- overrides/patches/kfp/*.patch
- overrides/settings/kfp.yaml
- package_plugins/kfp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multiprocess-*/*.patch
- overrides/patches/multiprocess/*.patch
- overrides/settings/multiprocess.yaml
- package_plugins/multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_client-*/*.patch
- overrides/patches/qdrant_client/*.patch
- overrides/settings/qdrant_client.yaml
- package_plugins/qdrant_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/langchain_qdrant-*/*.patch
- overrides/patches/langchain_qdrant/*.patch
- overrides/settings/langchain_qdrant.yaml
- package_plugins/langchain_qdrant.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_haystack-*/*.patch
- overrides/patches/qdrant_haystack/*.patch
- overrides/settings/qdrant_haystack.yaml
- package_plugins/qdrant_haystack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/haystack_ai-*/*.patch
- overrides/patches/haystack_ai/*.patch
- overrides/settings/haystack_ai.yaml
- package_plugins/haystack_ai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack-*/*.patch
- overrides/patches/llama_stack/*.patch
- overrides/settings/llama_stack.yaml
- package_plugins/llama_stack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai-*/*.patch
- overrides/patches/openai/*.patch
- overrides/settings/openai.yaml
- package_plugins/openai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_client-*/*.patch
- overrides/patches/llama_stack_client/*.patch
- overrides/settings/llama_stack_client.yaml
- package_plugins/llama_stack_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h5py-*/*.patch
- overrides/patches/h5py/*.patch
- overrides/settings/h5py.yaml
- package_plugins/h5py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/boto3-*/*.patch
- overrides/patches/boto3/*.patch
- overrides/settings/boto3.yaml
- package_plugins/boto3.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/submodlib_py-*/*.patch
- overrides/patches/submodlib_py/*.patch
- overrides/settings/submodlib_py.yaml
- package_plugins/submodlib_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ipython-*/*.patch
- overrides/patches/ipython/*.patch
- overrides/settings/ipython.yaml
- package_plugins/ipython.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/notebook-*/*.patch
- overrides/patches/notebook/*.patch
- overrides/settings/notebook.yaml
- package_plugins/notebook.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/matplotlib-*/*.patch
- overrides/patches/matplotlib/*.patch
- overrides/settings/matplotlib.yaml
- package_plugins/matplotlib.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mysql_connector_python-*/*.patch
- overrides/patches/mysql_connector_python/*.patch
- overrides/settings/mysql_connector_python.yaml
- package_plugins/mysql_connector_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyodbc-*/*.patch
- overrides/patches/pyodbc/*.patch
- overrides/settings/pyodbc.yaml
- package_plugins/pyodbc.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg-*/*.patch
- overrides/patches/psycopg/*.patch
- overrides/settings/psycopg.yaml
- package_plugins/psycopg.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soxr-*/*.patch
- overrides/patches/soxr/*.patch
- overrides/settings/soxr.yaml
- package_plugins/soxr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/librosa-*/*.patch
- overrides/patches/librosa/*.patch
- overrides/settings/librosa.yaml
- package_plugins/librosa.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soundfile-*/*.patch
- overrides/patches/soundfile/*.patch
- overrides/settings/soundfile.yaml
- package_plugins/soundfile.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hatch_fancy_pypi_readme-*/*.patch
- overrides/patches/hatch_fancy_pypi_readme/*.patch
- overrides/settings/hatch_fancy_pypi_readme.yaml
- package_plugins/hatch_fancy_pypi_readme.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soupsieve-*/*.patch
- overrides/patches/soupsieve/*.patch
- overrides/settings/soupsieve.yaml
- package_plugins/soupsieve.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ply-*/*.patch
- overrides/patches/ply/*.patch
- overrides/settings/ply.yaml
- package_plugins/ply.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sentencepiece-*/*.patch
- overrides/patches/sentencepiece/*.patch
- overrides/settings/sentencepiece.yaml
- package_plugins/sentencepiece.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/argon2_cffi-*/*.patch
- overrides/patches/argon2_cffi/*.patch
- overrides/settings/argon2_cffi.yaml
- package_plugins/argon2_cffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_transfer-*/*.patch
- overrides/patches/hf_transfer/*.patch
- overrides/settings/hf_transfer.yaml
- package_plugins/hf_transfer.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard-*/*.patch
- overrides/patches/tensorboard/*.patch
- overrides/settings/tensorboard.yaml
- package_plugins/tensorboard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard_data_server-*/*.patch
- overrides/patches/tensorboard_data_server/*.patch
- overrides/settings/tensorboard_data_server.yaml
- package_plugins/tensorboard_data_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h11-*/*.patch
- overrides/patches/h11/*.patch
- overrides/settings/h11.yaml
- package_plugins/h11.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/zstandard-*/*.patch
- overrides/patches/zstandard/*.patch
- overrides/settings/zstandard.yaml
- package_plugins/zstandard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mcp-*/*.patch
- overrides/patches/mcp/*.patch
- overrides/settings/mcp.yaml
- package_plugins/mcp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/MarkupSafe-*/*.patch
- overrides/patches/MarkupSafe/*.patch
- overrides/settings/MarkupSafe.yaml
- package_plugins/MarkupSafe.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohappyeyeballs-*/*.patch
- overrides/patches/aiohappyeyeballs/*.patch
- overrides/settings/aiohappyeyeballs.yaml
- package_plugins/aiohappyeyeballs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohttp-*/*.patch
- overrides/patches/aiohttp/*.patch
- overrides/settings/aiohttp.yaml
- package_plugins/aiohttp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosignal-*/*.patch
- overrides/patches/aiosignal/*.patch
- overrides/settings/aiosignal.yaml
- package_plugins/aiosignal.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/attrs-*/*.patch
- overrides/patches/attrs/*.patch
- overrides/settings/attrs.yaml
- package_plugins/attrs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/click-*/*.patch
- overrides/patches/click/*.patch
- overrides/settings/click.yaml
- package_plugins/click.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/filelock-*/*.patch
- overrides/patches/filelock/*.patch
- overrides/settings/filelock.yaml
- package_plugins/filelock.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fire-*/*.patch
- overrides/patches/fire/*.patch
- overrides/settings/fire.yaml
- package_plugins/fire.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/frozenlist-*/*.patch
- overrides/patches/frozenlist/*.patch
- overrides/settings/frozenlist.yaml
- package_plugins/frozenlist.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fsspec-*/*.patch
- overrides/patches/fsspec/*.patch
- overrides/settings/fsspec.yaml
- package_plugins/fsspec.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jinja2-*/*.patch
- overrides/patches/jinja2/*.patch
- overrides/settings/jinja2.yaml
- package_plugins/jinja2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema-*/*.patch
- overrides/patches/jsonschema/*.patch
- overrides/settings/jsonschema.yaml
- package_plugins/jsonschema.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema_specifications-*/*.patch
- overrides/patches/jsonschema_specifications/*.patch
- overrides/settings/jsonschema_specifications.yaml
- package_plugins/jsonschema_specifications.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/markdown_it_py-*/*.patch
- overrides/patches/markdown_it_py/*.patch
- overrides/settings/markdown_it_py.yaml
- package_plugins/markdown_it_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mdurl-*/*.patch
- overrides/patches/mdurl/*.patch
- overrides/settings/mdurl.yaml
- package_plugins/mdurl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multidict-*/*.patch
- overrides/patches/multidict/*.patch
- overrides/settings/multidict.yaml
- package_plugins/multidict.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numpy-*/*.patch
- overrides/patches/numpy/*.patch
- overrides/settings/numpy.yaml
- package_plugins/numpy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/packaging-*/*.patch
- overrides/patches/packaging/*.patch
- overrides/settings/packaging.yaml
- package_plugins/packaging.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pandas-*/*.patch
- overrides/patches/pandas/*.patch
- overrides/settings/pandas.yaml
- package_plugins/pandas.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pillow-*/*.patch
- overrides/patches/pillow/*.patch
- overrides/settings/pillow.yaml
- package_plugins/pillow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/prompt_toolkit-*/*.patch
- overrides/patches/prompt_toolkit/*.patch
- overrides/settings/prompt_toolkit.yaml
- package_plugins/prompt_toolkit.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/propcache-*/*.patch
- overrides/patches/propcache/*.patch
- overrides/settings/propcache.yaml
- package_plugins/propcache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyaml-*/*.patch
- overrides/patches/pyaml/*.patch
- overrides/settings/pyaml.yaml
- package_plugins/pyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyasn1-*/*.patch
- overrides/patches/pyasn1/*.patch
- overrides/settings/pyasn1.yaml
- package_plugins/pyasn1.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pygments-*/*.patch
- overrides/patches/pygments/*.patch
- overrides/settings/pygments.yaml
- package_plugins/pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dateutil-*/*.patch
- overrides/patches/python_dateutil/*.patch
- overrides/settings/python_dateutil.yaml
- package_plugins/python_dateutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dotenv-*/*.patch
- overrides/patches/python_dotenv/*.patch
- overrides/settings/python_dotenv.yaml
- package_plugins/python_dotenv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_jose-*/*.patch
- overrides/patches/python_jose/*.patch
- overrides/settings/python_jose.yaml
- package_plugins/python_jose.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_multipart-*/*.patch
- overrides/patches/python_multipart/*.patch
- overrides/settings/python_multipart.yaml
- package_plugins/python_multipart.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytz-*/*.patch
- overrides/patches/pytz/*.patch
- overrides/settings/pytz.yaml
- package_plugins/pytz.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyyaml-*/*.patch
- overrides/patches/pyyaml/*.patch
- overrides/settings/pyyaml.yaml
- package_plugins/pyyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/referencing-*/*.patch
- overrides/patches/referencing/*.patch
- overrides/settings/referencing.yaml
- package_plugins/referencing.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/regex-*/*.patch
- overrides/patches/regex/*.patch
- overrides/settings/regex.yaml
- package_plugins/regex.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rich-*/*.patch
- overrides/patches/rich/*.patch
- overrides/settings/rich.yaml
- package_plugins/rich.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rpds_py-*/*.patch
- overrides/patches/rpds_py/*.patch
- overrides/settings/rpds_py.yaml
- package_plugins/rpds_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/six-*/*.patch
- overrides/patches/six/*.patch
- overrides/settings/six.yaml
- package_plugins/six.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/termcolor-*/*.patch
- overrides/patches/termcolor/*.patch
- overrides/settings/termcolor.yaml
- package_plugins/termcolor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tiktoken-*/*.patch
- overrides/patches/tiktoken/*.patch
- overrides/settings/tiktoken.yaml
- package_plugins/tiktoken.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tzdata-*/*.patch
- overrides/patches/tzdata/*.patch
- overrides/settings/tzdata.yaml
- package_plugins/tzdata.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wcwidth-*/*.patch
- overrides/patches/wcwidth/*.patch
- overrides/settings/wcwidth.yaml
- package_plugins/wcwidth.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosqlite-*/*.patch
- overrides/patches/aiosqlite/*.patch
- overrides/settings/aiosqlite.yaml
- package_plugins/aiosqlite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/autoevals-*/*.patch
- overrides/patches/autoevals/*.patch
- overrides/settings/autoevals.yaml
- package_plugins/autoevals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/chardet-*/*.patch
- overrides/patches/chardet/*.patch
- overrides/settings/chardet.yaml
- package_plugins/chardet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/datasets-*/*.patch
- overrides/patches/datasets/*.patch
- overrides/settings/datasets.yaml
- package_plugins/datasets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/httpx-*/*.patch
- overrides/patches/httpx/*.patch
- overrides/settings/httpx.yaml
- package_plugins/httpx.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kubernetes-*/*.patch
- overrides/patches/kubernetes/*.patch
- overrides/settings/kubernetes.yaml
- package_plugins/kubernetes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_lmeval-*/*.patch
- overrides/patches/llama_stack_provider_lmeval/*.patch
- overrides/settings/llama_stack_provider_lmeval.yaml
- package_plugins/llama_stack_provider_lmeval.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_trustyai_fms-*/*.patch
- overrides/patches/llama_stack_provider_trustyai_fms/*.patch
- overrides/settings/llama_stack_provider_trustyai_fms.yaml
- package_plugins/llama_stack_provider_trustyai_fms.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nltk-*/*.patch
- overrides/patches/nltk/*.patch
- overrides/settings/nltk.yaml
- package_plugins/nltk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_otlp_proto_http-*/*.patch
- overrides/patches/opentelemetry_exporter_otlp_proto_http/*.patch
- overrides/settings/opentelemetry_exporter_otlp_proto_http.yaml
- package_plugins/opentelemetry_exporter_otlp_proto_http.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_sdk-*/*.patch
- overrides/patches/opentelemetry_sdk/*.patch
- overrides/settings/opentelemetry_sdk.yaml
- package_plugins/opentelemetry_sdk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg2_binary-*/*.patch
- overrides/patches/psycopg2_binary/*.patch
- overrides/settings/psycopg2_binary.yaml
- package_plugins/psycopg2_binary.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymongo-*/*.patch
- overrides/patches/pymongo/*.patch
- overrides/settings/pymongo.yaml
- package_plugins/pymongo.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdf-*/*.patch
- overrides/patches/pypdf/*.patch
- overrides/settings/pypdf.yaml
- package_plugins/pypdf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/redis-*/*.patch
- overrides/patches/redis/*.patch
- overrides/settings/redis.yaml
- package_plugins/redis.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/requests-*/*.patch
- overrides/patches/requests/*.patch
- overrides/settings/requests.yaml
- package_plugins/requests.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scikit_learn-*/*.patch
- overrides/patches/scikit_learn/*.patch
- overrides/settings/scikit_learn.yaml
- package_plugins/scikit_learn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scipy-*/*.patch
- overrides/patches/scipy/*.patch
- overrides/settings/scipy.yaml
- package_plugins/scipy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sqlalchemy-*/*.patch
- overrides/patches/sqlalchemy/*.patch
- overrides/settings/sqlalchemy.yaml
- package_plugins/sqlalchemy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm-*/*.patch
- overrides/patches/tqdm/*.patch
- overrides/settings/tqdm.yaml
- package_plugins/tqdm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/transformers-*/*.patch
- overrides/patches/transformers/*.patch
- overrides/settings/transformers.yaml
- package_plugins/transformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn-*/*.patch
- overrides/patches/uvicorn/*.patch
- overrides/settings/uvicorn.yaml
- package_plugins/uvicorn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymilvus-*/*.patch
- overrides/patches/pymilvus/*.patch
- overrides/settings/pymilvus.yaml
- package_plugins/pymilvus.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/milvus_lite-*/*.patch
- overrides/patches/milvus_lite/*.patch
- overrides/settings/milvus_lite.yaml
- package_plugins/milvus_lite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rtree-*/*.patch
- overrides/patches/rtree/*.patch
- overrides/settings/rtree.yaml
- package_plugins/rtree.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/grpcio-*/*.patch
- overrides/patches/grpcio/*.patch
- overrides/settings/grpcio.yaml
- package_plugins/grpcio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cbor2-*/*.patch
- overrides/patches/cbor2/*.patch
- overrides/settings/cbor2.yaml
- package_plugins/cbor2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/outlines_core-*/*.patch
- overrides/patches/outlines_core/*.patch
- overrides/settings/outlines_core.yaml
- package_plugins/outlines_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/setproctitle-*/*.patch
- overrides/patches/setproctitle/*.patch
- overrides/settings/setproctitle.yaml
- package_plugins/setproctitle.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai_harmony-*/*.patch
- overrides/patches/openai_harmony/*.patch
- overrides/settings/openai_harmony.yaml
- package_plugins/openai_harmony.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uv-*/*.patch
- overrides/patches/uv/*.patch
- overrides/settings/uv.yaml
- package_plugins/uv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psutil-*/*.patch
- overrides/patches/psutil/*.patch
- overrides/settings/psutil.yaml
- package_plugins/psutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/polars-*/*.patch
- overrides/patches/polars/*.patch
- overrides/settings/polars.yaml
- package_plugins/polars.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docker-*/*.patch
- overrides/patches/docker/*.patch
- overrides/settings/docker.yaml
- package_plugins/docker.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn_worker-*/*.patch
- overrides/patches/uvicorn_worker/*.patch
- overrides/settings/uvicorn_worker.yaml
- package_plugins/uvicorn_worker.py
".trigger-torch-2.8.0-cpu-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_openmp-*/*.patch
- overrides/patches/intel_openmp/*.patch
- overrides/settings/intel_openmp.yaml
- package_plugins/intel_openmp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_cmplr_lib_ur-*/*.patch
- overrides/patches/intel_cmplr_lib_ur/*.patch
- overrides/settings/intel_cmplr_lib_ur.yaml
- package_plugins/intel_cmplr_lib_ur.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_extension_for_pytorch-*/*.patch
- overrides/patches/intel_extension_for_pytorch/*.patch
- overrides/settings/intel_extension_for_pytorch.yaml
- package_plugins/intel_extension_for_pytorch.py
".trigger-torch-2.8.0-cuda12.8-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xgrammar-*/*.patch
- overrides/patches/xgrammar/*.patch
- overrides/settings/xgrammar.yaml
- package_plugins/xgrammar.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_cpp_python-*/*.patch
- overrides/patches/llama_cpp_python/*.patch
- overrides/settings/llama_cpp_python.yaml
- package_plugins/llama_cpp_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_python-*/*.patch
- overrides/patches/flashinfer_python/*.patch
- overrides/settings/flashinfer_python.yaml
- package_plugins/flashinfer_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_cubin-*/*.patch
- overrides/patches/flashinfer_cubin/*.patch
- overrides/settings/flashinfer_cubin.yaml
- package_plugins/flashinfer_cubin.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_jit_cache-*/*.patch
- overrides/patches/flashinfer_jit_cache/*.patch
- overrides/settings/flashinfer_jit_cache.yaml
- package_plugins/flashinfer_jit_cache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numba-*/*.patch
- overrides/patches/numba/*.patch
- overrides/settings/numba.yaml
- package_plugins/numba.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_bindings-*/*.patch
- overrides/patches/cuda_bindings/*.patch
- overrides/settings/cuda_bindings.yaml
- package_plugins/cuda_bindings.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_core-*/*.patch
- overrides/patches/cuda_core/*.patch
- overrides/settings/cuda_core.yaml
- package_plugins/cuda_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_python-*/*.patch
- overrides/patches/cuda_python/*.patch
- overrides/settings/cuda_python.yaml
- package_plugins/cuda_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cudnn_frontend-*/*.patch
- overrides/patches/nvidia_cudnn_frontend/*.patch
- overrides/settings/nvidia_cudnn_frontend.yaml
- package_plugins/nvidia_cudnn_frontend.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cutlass_dsl-*/*.patch
- overrides/patches/nvidia_cutlass_dsl/*.patch
- overrides/settings/nvidia_cutlass_dsl.yaml
- package_plugins/nvidia_cutlass_dsl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llmcompressor-*/*.patch
- overrides/patches/llmcompressor/*.patch
- overrides/settings/llmcompressor.yaml
- package_plugins/llmcompressor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab-*/*.patch
- overrides/patches/jupyterlab/*.patch
- overrides/settings/jupyterlab.yaml
- package_plugins/jupyterlab.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server-*/*.patch
- overrides/patches/jupyter_server/*.patch
- overrides/settings/jupyter_server.yaml
- package_plugins/jupyter_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_mathjax-*/*.patch
- overrides/patches/jupyter_server_mathjax/*.patch
- overrides/settings/jupyter_server_mathjax.yaml
- package_plugins/jupyter_server_mathjax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_proxy-*/*.patch
- overrides/patches/jupyter_server_proxy/*.patch
- overrides/settings/jupyter_server_proxy.yaml
- package_plugins/jupyter_server_proxy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_terminals-*/*.patch
- overrides/patches/jupyter_server_terminals/*.patch
- overrides/settings/jupyter_server_terminals.yaml
- package_plugins/jupyter_server_terminals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_git-*/*.patch
- overrides/patches/jupyterlab_git/*.patch
- overrides/settings/jupyterlab_git.yaml
- package_plugins/jupyterlab_git.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbdime-*/*.patch
- overrides/patches/nbdime/*.patch
- overrides/settings/nbdime.yaml
- package_plugins/nbdime.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbgitpuller-*/*.patch
- overrides/patches/nbgitpuller/*.patch
- overrides/settings/nbgitpuller.yaml
- package_plugins/nbgitpuller.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_bokeh-*/*.patch
- overrides/patches/jupyter_bokeh/*.patch
- overrides/settings/jupyter_bokeh.yaml
- package_plugins/jupyter_bokeh.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_lsp-*/*.patch
- overrides/patches/jupyterlab_lsp/*.patch
- overrides/settings/jupyterlab_lsp.yaml
- package_plugins/jupyterlab_lsp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_widgets-*/*.patch
- overrides/patches/jupyterlab_widgets/*.patch
- overrides/settings/jupyterlab_widgets.yaml
- package_plugins/jupyterlab_widgets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_resource_usage-*/*.patch
- overrides/patches/jupyter_resource_usage/*.patch
- overrides/settings/jupyter_resource_usage.yaml
- package_plugins/jupyter_resource_usage.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pplx_kernels-*/*.patch
- overrides/patches/pplx_kernels/*.patch
- overrides/settings/pplx_kernels.yaml
- package_plugins/pplx_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_ep-*/*.patch
- overrides/patches/deep_ep/*.patch
- overrides/settings/deep_ep.yaml
- package_plugins/deep_ep.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_gemm-*/*.patch
- overrides/patches/deep_gemm/*.patch
- overrides/settings/deep_gemm.yaml
- package_plugins/deep_gemm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cmake-*/*.patch
- overrides/patches/cmake/*.patch
- overrides/settings/cmake.yaml
- package_plugins/cmake.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cupy_cuda12x-*/*.patch
- overrides/patches/cupy_cuda12x/*.patch
- overrides/settings/cupy_cuda12x.yaml
- package_plugins/cupy_cuda12x.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nixl-*/*.patch
- overrides/patches/nixl/*.patch
- overrides/settings/nixl.yaml
- package_plugins/nixl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/timm-*/*.patch
- overrides/patches/timm/*.patch
- overrides/settings/timm.yaml
- package_plugins/timm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/causal_conv1d-*/*.patch
- overrides/patches/causal_conv1d/*.patch
- overrides/settings/causal_conv1d.yaml
- package_plugins/causal_conv1d.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mamba_ssm-*/*.patch
- overrides/patches/mamba_ssm/*.patch
- overrides/settings/mamba_ssm.yaml
- package_plugins/mamba_ssm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_prometheus-*/*.patch
- overrides/patches/opentelemetry_exporter_prometheus/*.patch
- overrides/settings/opentelemetry_exporter_prometheus.yaml
- package_plugins/opentelemetry_exporter_prometheus.py
".trigger-torch-2.8.0-cuda12.9-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xgrammar-*/*.patch
- overrides/patches/xgrammar/*.patch
- overrides/settings/xgrammar.yaml
- package_plugins/xgrammar.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_python-*/*.patch
- overrides/patches/flashinfer_python/*.patch
- overrides/settings/flashinfer_python.yaml
- package_plugins/flashinfer_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_cubin-*/*.patch
- overrides/patches/flashinfer_cubin/*.patch
- overrides/settings/flashinfer_cubin.yaml
- package_plugins/flashinfer_cubin.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_jit_cache-*/*.patch
- overrides/patches/flashinfer_jit_cache/*.patch
- overrides/settings/flashinfer_jit_cache.yaml
- package_plugins/flashinfer_jit_cache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numba-*/*.patch
- overrides/patches/numba/*.patch
- overrides/settings/numba.yaml
- package_plugins/numba.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_bindings-*/*.patch
- overrides/patches/cuda_bindings/*.patch
- overrides/settings/cuda_bindings.yaml
- package_plugins/cuda_bindings.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_core-*/*.patch
- overrides/patches/cuda_core/*.patch
- overrides/settings/cuda_core.yaml
- package_plugins/cuda_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_python-*/*.patch
- overrides/patches/cuda_python/*.patch
- overrides/settings/cuda_python.yaml
- package_plugins/cuda_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_pathfinder-*/*.patch
- overrides/patches/cuda_pathfinder/*.patch
- overrides/settings/cuda_pathfinder.yaml
- package_plugins/cuda_pathfinder.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cudnn_frontend-*/*.patch
- overrides/patches/nvidia_cudnn_frontend/*.patch
- overrides/settings/nvidia_cudnn_frontend.yaml
- package_plugins/nvidia_cudnn_frontend.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cutlass_dsl-*/*.patch
- overrides/patches/nvidia_cutlass_dsl/*.patch
- overrides/settings/nvidia_cutlass_dsl.yaml
- package_plugins/nvidia_cutlass_dsl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llmcompressor-*/*.patch
- overrides/patches/llmcompressor/*.patch
- overrides/settings/llmcompressor.yaml
- package_plugins/llmcompressor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab-*/*.patch
- overrides/patches/jupyterlab/*.patch
- overrides/settings/jupyterlab.yaml
- package_plugins/jupyterlab.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server-*/*.patch
- overrides/patches/jupyter_server/*.patch
- overrides/settings/jupyter_server.yaml
- package_plugins/jupyter_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_mathjax-*/*.patch
- overrides/patches/jupyter_server_mathjax/*.patch
- overrides/settings/jupyter_server_mathjax.yaml
- package_plugins/jupyter_server_mathjax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_proxy-*/*.patch
- overrides/patches/jupyter_server_proxy/*.patch
- overrides/settings/jupyter_server_proxy.yaml
- package_plugins/jupyter_server_proxy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_terminals-*/*.patch
- overrides/patches/jupyter_server_terminals/*.patch
- overrides/settings/jupyter_server_terminals.yaml
- package_plugins/jupyter_server_terminals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_git-*/*.patch
- overrides/patches/jupyterlab_git/*.patch
- overrides/settings/jupyterlab_git.yaml
- package_plugins/jupyterlab_git.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbdime-*/*.patch
- overrides/patches/nbdime/*.patch
- overrides/settings/nbdime.yaml
- package_plugins/nbdime.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbgitpuller-*/*.patch
- overrides/patches/nbgitpuller/*.patch
- overrides/settings/nbgitpuller.yaml
- package_plugins/nbgitpuller.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_bokeh-*/*.patch
- overrides/patches/jupyter_bokeh/*.patch
- overrides/settings/jupyter_bokeh.yaml
- package_plugins/jupyter_bokeh.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_lsp-*/*.patch
- overrides/patches/jupyterlab_lsp/*.patch
- overrides/settings/jupyterlab_lsp.yaml
- package_plugins/jupyterlab_lsp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_widgets-*/*.patch
- overrides/patches/jupyterlab_widgets/*.patch
- overrides/settings/jupyterlab_widgets.yaml
- package_plugins/jupyterlab_widgets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_resource_usage-*/*.patch
- overrides/patches/jupyter_resource_usage/*.patch
- overrides/settings/jupyter_resource_usage.yaml
- package_plugins/jupyter_resource_usage.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pplx_kernels-*/*.patch
- overrides/patches/pplx_kernels/*.patch
- overrides/settings/pplx_kernels.yaml
- package_plugins/pplx_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_ep-*/*.patch
- overrides/patches/deep_ep/*.patch
- overrides/settings/deep_ep.yaml
- package_plugins/deep_ep.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_gemm-*/*.patch
- overrides/patches/deep_gemm/*.patch
- overrides/settings/deep_gemm.yaml
- package_plugins/deep_gemm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cmake-*/*.patch
- overrides/patches/cmake/*.patch
- overrides/settings/cmake.yaml
- package_plugins/cmake.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cupy_cuda12x-*/*.patch
- overrides/patches/cupy_cuda12x/*.patch
- overrides/settings/cupy_cuda12x.yaml
- package_plugins/cupy_cuda12x.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nixl-*/*.patch
- overrides/patches/nixl/*.patch
- overrides/settings/nixl.yaml
- package_plugins/nixl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/timm-*/*.patch
- overrides/patches/timm/*.patch
- overrides/settings/timm.yaml
- package_plugins/timm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/causal_conv1d-*/*.patch
- overrides/patches/causal_conv1d/*.patch
- overrides/settings/causal_conv1d.yaml
- package_plugins/causal_conv1d.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mamba_ssm-*/*.patch
- overrides/patches/mamba_ssm/*.patch
- overrides/settings/mamba_ssm.yaml
- package_plugins/mamba_ssm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_prometheus-*/*.patch
- overrides/patches/opentelemetry_exporter_prometheus/*.patch
- overrides/settings/opentelemetry_exporter_prometheus.yaml
- package_plugins/opentelemetry_exporter_prometheus.py
".trigger-torch-2.8.0-rocm6.4-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aotriton-*/*.patch
- overrides/patches/aotriton/*.patch
- overrides/settings/aotriton.yaml
- package_plugins/aotriton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_cpp_python-*/*.patch
- overrides/patches/llama_cpp_python/*.patch
- overrides/settings/llama_cpp_python.yaml
- package_plugins/llama_cpp_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/amdsmi-*/*.patch
- overrides/patches/amdsmi/*.patch
- overrides/settings/amdsmi.yaml
- package_plugins/amdsmi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/runai_model_streamer_s3-*/*.patch
- overrides/patches/runai_model_streamer_s3/*.patch
- overrides/settings/runai_model_streamer_s3.yaml
- package_plugins/runai_model_streamer_s3.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/runai_model_streamer-*/*.patch
- overrides/patches/runai_model_streamer/*.patch
- overrides/settings/runai_model_streamer.yaml
- package_plugins/runai_model_streamer.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_xet-*/*.patch
- overrides/patches/hf_xet/*.patch
- overrides/settings/hf_xet.yaml
- package_plugins/hf_xet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llmcompressor-*/*.patch
- overrides/patches/llmcompressor/*.patch
- overrides/settings/llmcompressor.yaml
- package_plugins/llmcompressor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab-*/*.patch
- overrides/patches/jupyterlab/*.patch
- overrides/settings/jupyterlab.yaml
- package_plugins/jupyterlab.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server-*/*.patch
- overrides/patches/jupyter_server/*.patch
- overrides/settings/jupyter_server.yaml
- package_plugins/jupyter_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_mathjax-*/*.patch
- overrides/patches/jupyter_server_mathjax/*.patch
- overrides/settings/jupyter_server_mathjax.yaml
- package_plugins/jupyter_server_mathjax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_proxy-*/*.patch
- overrides/patches/jupyter_server_proxy/*.patch
- overrides/settings/jupyter_server_proxy.yaml
- package_plugins/jupyter_server_proxy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_terminals-*/*.patch
- overrides/patches/jupyter_server_terminals/*.patch
- overrides/settings/jupyter_server_terminals.yaml
- package_plugins/jupyter_server_terminals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_git-*/*.patch
- overrides/patches/jupyterlab_git/*.patch
- overrides/settings/jupyterlab_git.yaml
- package_plugins/jupyterlab_git.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbdime-*/*.patch
- overrides/patches/nbdime/*.patch
- overrides/settings/nbdime.yaml
- package_plugins/nbdime.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbgitpuller-*/*.patch
- overrides/patches/nbgitpuller/*.patch
- overrides/settings/nbgitpuller.yaml
- package_plugins/nbgitpuller.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_bokeh-*/*.patch
- overrides/patches/jupyter_bokeh/*.patch
- overrides/settings/jupyter_bokeh.yaml
- package_plugins/jupyter_bokeh.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_lsp-*/*.patch
- overrides/patches/jupyterlab_lsp/*.patch
- overrides/settings/jupyterlab_lsp.yaml
- package_plugins/jupyterlab_lsp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_widgets-*/*.patch
- overrides/patches/jupyterlab_widgets/*.patch
- overrides/settings/jupyterlab_widgets.yaml
- package_plugins/jupyterlab_widgets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_resource_usage-*/*.patch
- overrides/patches/jupyter_resource_usage/*.patch
- overrides/settings/jupyter_resource_usage.yaml
- package_plugins/jupyter_resource_usage.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/conch_triton_kernels-*/*.patch
- overrides/patches/conch_triton_kernels/*.patch
- overrides/settings/conch_triton_kernels.yaml
- package_plugins/conch_triton_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/timm-*/*.patch
- overrides/patches/timm/*.patch
- overrides/settings/timm.yaml
- package_plugins/timm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiter-*/*.patch
- overrides/patches/aiter/*.patch
- overrides/settings/aiter.yaml
- package_plugins/aiter.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_prometheus-*/*.patch
- overrides/patches/opentelemetry_exporter_prometheus/*.patch
- overrides/settings/opentelemetry_exporter_prometheus.yaml
- package_plugins/opentelemetry_exporter_prometheus.py
".trigger-torch-2.8.0-rocm7.0-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aotriton-*/*.patch
- overrides/patches/aotriton/*.patch
- overrides/settings/aotriton.yaml
- package_plugins/aotriton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_cpp_python-*/*.patch
- overrides/patches/llama_cpp_python/*.patch
- overrides/settings/llama_cpp_python.yaml
- package_plugins/llama_cpp_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/amdsmi-*/*.patch
- overrides/patches/amdsmi/*.patch
- overrides/settings/amdsmi.yaml
- package_plugins/amdsmi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/runai_model_streamer_s3-*/*.patch
- overrides/patches/runai_model_streamer_s3/*.patch
- overrides/settings/runai_model_streamer_s3.yaml
- package_plugins/runai_model_streamer_s3.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/runai_model_streamer-*/*.patch
- overrides/patches/runai_model_streamer/*.patch
- overrides/settings/runai_model_streamer.yaml
- package_plugins/runai_model_streamer.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_xet-*/*.patch
- overrides/patches/hf_xet/*.patch
- overrides/settings/hf_xet.yaml
- package_plugins/hf_xet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llmcompressor-*/*.patch
- overrides/patches/llmcompressor/*.patch
- overrides/settings/llmcompressor.yaml
- package_plugins/llmcompressor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab-*/*.patch
- overrides/patches/jupyterlab/*.patch
- overrides/settings/jupyterlab.yaml
- package_plugins/jupyterlab.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server-*/*.patch
- overrides/patches/jupyter_server/*.patch
- overrides/settings/jupyter_server.yaml
- package_plugins/jupyter_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_mathjax-*/*.patch
- overrides/patches/jupyter_server_mathjax/*.patch
- overrides/settings/jupyter_server_mathjax.yaml
- package_plugins/jupyter_server_mathjax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_proxy-*/*.patch
- overrides/patches/jupyter_server_proxy/*.patch
- overrides/settings/jupyter_server_proxy.yaml
- package_plugins/jupyter_server_proxy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_terminals-*/*.patch
- overrides/patches/jupyter_server_terminals/*.patch
- overrides/settings/jupyter_server_terminals.yaml
- package_plugins/jupyter_server_terminals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_git-*/*.patch
- overrides/patches/jupyterlab_git/*.patch
- overrides/settings/jupyterlab_git.yaml
- package_plugins/jupyterlab_git.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbdime-*/*.patch
- overrides/patches/nbdime/*.patch
- overrides/settings/nbdime.yaml
- package_plugins/nbdime.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbgitpuller-*/*.patch
- overrides/patches/nbgitpuller/*.patch
- overrides/settings/nbgitpuller.yaml
- package_plugins/nbgitpuller.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_bokeh-*/*.patch
- overrides/patches/jupyter_bokeh/*.patch
- overrides/settings/jupyter_bokeh.yaml
- package_plugins/jupyter_bokeh.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_lsp-*/*.patch
- overrides/patches/jupyterlab_lsp/*.patch
- overrides/settings/jupyterlab_lsp.yaml
- package_plugins/jupyterlab_lsp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_widgets-*/*.patch
- overrides/patches/jupyterlab_widgets/*.patch
- overrides/settings/jupyterlab_widgets.yaml
- package_plugins/jupyterlab_widgets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_resource_usage-*/*.patch
- overrides/patches/jupyter_resource_usage/*.patch
- overrides/settings/jupyter_resource_usage.yaml
- package_plugins/jupyter_resource_usage.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/conch_triton_kernels-*/*.patch
- overrides/patches/conch_triton_kernels/*.patch
- overrides/settings/conch_triton_kernels.yaml
- package_plugins/conch_triton_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/timm-*/*.patch
- overrides/patches/timm/*.patch
- overrides/settings/timm.yaml
- package_plugins/timm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiter-*/*.patch
- overrides/patches/aiter/*.patch
- overrides/settings/aiter.yaml
- package_plugins/aiter.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_prometheus-*/*.patch
- overrides/patches/opentelemetry_exporter_prometheus/*.patch
- overrides/settings/opentelemetry_exporter_prometheus.yaml
- package_plugins/opentelemetry_exporter_prometheus.py
".trigger-torch-2.8.0-tpu-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cmake-*/*.patch
- overrides/patches/cmake/*.patch
- overrides/settings/cmake.yaml
- package_plugins/cmake.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch_xla-*/*.patch
- overrides/patches/torch_xla/*.patch
- overrides/settings/torch_xla.yaml
- package_plugins/torch_xla.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jax-*/*.patch
- overrides/patches/jax/*.patch
- overrides/settings/jax.yaml
- package_plugins/jax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jaxlib-*/*.patch
- overrides/patches/jaxlib/*.patch
- overrides/settings/jaxlib.yaml
- package_plugins/jaxlib.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/setuptools_scm-*/*.patch
- overrides/patches/setuptools_scm/*.patch
- overrides/settings/setuptools_scm.yaml
- package_plugins/setuptools_scm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/libtpu-*/*.patch
- overrides/patches/libtpu/*.patch
- overrides/settings/libtpu.yaml
- package_plugins/libtpu.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tpu_info-*/*.patch
- overrides/patches/tpu_info/*.patch
- overrides/settings/tpu_info.yaml
- package_plugins/tpu_info.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opt_einsum-*/*.patch
- overrides/patches/opt_einsum/*.patch
- overrides/settings/opt_einsum.yaml
- package_plugins/opt_einsum.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/timm-*/*.patch
- overrides/patches/timm/*.patch
- overrides/settings/timm.yaml
- package_plugins/timm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_prometheus-*/*.patch
- overrides/patches/opentelemetry_exporter_prometheus/*.patch
- overrides/settings/opentelemetry_exporter_prometheus.yaml
- package_plugins/opentelemetry_exporter_prometheus.py
".trigger-torch-2.9.0-cpu-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
".trigger-torch-2.9.0-cuda12.8-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/apache_tvm_ffi-*/*.patch
- overrides/patches/apache_tvm_ffi/*.patch
- overrides/settings/apache_tvm_ffi.yaml
- package_plugins/apache_tvm_ffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cmake-*/*.patch
- overrides/patches/cmake/*.patch
- overrides/settings/cmake.yaml
- package_plugins/cmake.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/causal_conv1d-*/*.patch
- overrides/patches/causal_conv1d/*.patch
- overrides/settings/causal_conv1d.yaml
- package_plugins/causal_conv1d.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cupy_cuda12x-*/*.patch
- overrides/patches/cupy_cuda12x/*.patch
- overrides/settings/cupy_cuda12x.yaml
- package_plugins/cupy_cuda12x.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_bindings-*/*.patch
- overrides/patches/cuda_bindings/*.patch
- overrides/settings/cuda_bindings.yaml
- package_plugins/cuda_bindings.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_core-*/*.patch
- overrides/patches/cuda_core/*.patch
- overrides/settings/cuda_core.yaml
- package_plugins/cuda_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_python-*/*.patch
- overrides/patches/cuda_python/*.patch
- overrides/settings/cuda_python.yaml
- package_plugins/cuda_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_ep-*/*.patch
- overrides/patches/deep_ep/*.patch
- overrides/settings/deep_ep.yaml
- package_plugins/deep_ep.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_gemm-*/*.patch
- overrides/patches/deep_gemm/*.patch
- overrides/settings/deep_gemm.yaml
- package_plugins/deep_gemm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_cubin-*/*.patch
- overrides/patches/flashinfer_cubin/*.patch
- overrides/settings/flashinfer_cubin.yaml
- package_plugins/flashinfer_cubin.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_jit_cache-*/*.patch
- overrides/patches/flashinfer_jit_cache/*.patch
- overrides/settings/flashinfer_jit_cache.yaml
- package_plugins/flashinfer_jit_cache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_python-*/*.patch
- overrides/patches/flashinfer_python/*.patch
- overrides/settings/flashinfer_python.yaml
- package_plugins/flashinfer_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mamba_ssm-*/*.patch
- overrides/patches/mamba_ssm/*.patch
- overrides/settings/mamba_ssm.yaml
- package_plugins/mamba_ssm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nixl-*/*.patch
- overrides/patches/nixl/*.patch
- overrides/settings/nixl.yaml
- package_plugins/nixl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numba-*/*.patch
- overrides/patches/numba/*.patch
- overrides/settings/numba.yaml
- package_plugins/numba.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cudnn_frontend-*/*.patch
- overrides/patches/nvidia_cudnn_frontend/*.patch
- overrides/settings/nvidia_cudnn_frontend.yaml
- package_plugins/nvidia_cudnn_frontend.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cutlass_dsl-*/*.patch
- overrides/patches/nvidia_cutlass_dsl/*.patch
- overrides/settings/nvidia_cutlass_dsl.yaml
- package_plugins/nvidia_cutlass_dsl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pplx_kernels-*/*.patch
- overrides/patches/pplx_kernels/*.patch
- overrides/settings/pplx_kernels.yaml
- package_plugins/pplx_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xgrammar-*/*.patch
- overrides/patches/xgrammar/*.patch
- overrides/settings/xgrammar.yaml
- package_plugins/xgrammar.py
".trigger-torch-2.9.0-cuda12.9-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/apache_tvm_ffi-*/*.patch
- overrides/patches/apache_tvm_ffi/*.patch
- overrides/settings/apache_tvm_ffi.yaml
- package_plugins/apache_tvm_ffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cmake-*/*.patch
- overrides/patches/cmake/*.patch
- overrides/settings/cmake.yaml
- package_plugins/cmake.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/causal_conv1d-*/*.patch
- overrides/patches/causal_conv1d/*.patch
- overrides/settings/causal_conv1d.yaml
- package_plugins/causal_conv1d.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cupy_cuda12x-*/*.patch
- overrides/patches/cupy_cuda12x/*.patch
- overrides/settings/cupy_cuda12x.yaml
- package_plugins/cupy_cuda12x.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_bindings-*/*.patch
- overrides/patches/cuda_bindings/*.patch
- overrides/settings/cuda_bindings.yaml
- package_plugins/cuda_bindings.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_core-*/*.patch
- overrides/patches/cuda_core/*.patch
- overrides/settings/cuda_core.yaml
- package_plugins/cuda_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_python-*/*.patch
- overrides/patches/cuda_python/*.patch
- overrides/settings/cuda_python.yaml
- package_plugins/cuda_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_ep-*/*.patch
- overrides/patches/deep_ep/*.patch
- overrides/settings/deep_ep.yaml
- package_plugins/deep_ep.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_gemm-*/*.patch
- overrides/patches/deep_gemm/*.patch
- overrides/settings/deep_gemm.yaml
- package_plugins/deep_gemm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_cubin-*/*.patch
- overrides/patches/flashinfer_cubin/*.patch
- overrides/settings/flashinfer_cubin.yaml
- package_plugins/flashinfer_cubin.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_jit_cache-*/*.patch
- overrides/patches/flashinfer_jit_cache/*.patch
- overrides/settings/flashinfer_jit_cache.yaml
- package_plugins/flashinfer_jit_cache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_python-*/*.patch
- overrides/patches/flashinfer_python/*.patch
- overrides/settings/flashinfer_python.yaml
- package_plugins/flashinfer_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mamba_ssm-*/*.patch
- overrides/patches/mamba_ssm/*.patch
- overrides/settings/mamba_ssm.yaml
- package_plugins/mamba_ssm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nixl-*/*.patch
- overrides/patches/nixl/*.patch
- overrides/settings/nixl.yaml
- package_plugins/nixl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numba-*/*.patch
- overrides/patches/numba/*.patch
- overrides/settings/numba.yaml
- package_plugins/numba.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cudnn_frontend-*/*.patch
- overrides/patches/nvidia_cudnn_frontend/*.patch
- overrides/settings/nvidia_cudnn_frontend.yaml
- package_plugins/nvidia_cudnn_frontend.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cutlass_dsl-*/*.patch
- overrides/patches/nvidia_cutlass_dsl/*.patch
- overrides/settings/nvidia_cutlass_dsl.yaml
- package_plugins/nvidia_cutlass_dsl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pplx_kernels-*/*.patch
- overrides/patches/pplx_kernels/*.patch
- overrides/settings/pplx_kernels.yaml
- package_plugins/pplx_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xgrammar-*/*.patch
- overrides/patches/xgrammar/*.patch
- overrides/settings/xgrammar.yaml
- package_plugins/xgrammar.py
".trigger-torch-2.9.0-rocm6.4-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aotriton-*/*.patch
- overrides/patches/aotriton/*.patch
- overrides/settings/aotriton.yaml
- package_plugins/aotriton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
".trigger-torch-2.9.0-rocm7.0-ubi9":
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aotriton-*/*.patch
- overrides/patches/aotriton/*.patch
- overrides/settings/aotriton.yaml
- package_plugins/aotriton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
build-image-cpu-ubi9-aarch64:
image: quay.io/buildah/stable:v1.40.1
retry: 0
stage: build-images
interruptible: true
tags:
- aipcc-small-aarch64
variables:
ARCH: aarch64
VARIANT: cpu-ubi9
before_script:
- dnf install -y which ncurses
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- |
case ${VARIANT} in
cuda*) CONTAINERFILE="Containerfile.cuda-ubi9" ;;
rocm*) CONTAINERFILE="Containerfile.rocm-ubi9" ;;
*) CONTAINERFILE="Containerfile.${VARIANT}" ;;
esac
- echo CONTAINERFILE=$CONTAINERFILE
- if [ -n "$CI_COMMIT_TAG" ]; then echo "Using tag for version"; IMAGE_TAG="$CI_COMMIT_TAG";
else echo "Generating version from MR IID"; IMAGE_TAG="${BUILDER_IMAGE_VERSION}";
fi
- echo IMAGE_TAG=$IMAGE_TAG
- IMAGE_BASE="${CI_REGISTRY}/${CI_PROJECT_PATH}/builder-${VARIANT}-${ARCH}"
- echo IMAGE_BASE=$IMAGE_BASE
- IMAGE="${IMAGE_BASE}:${IMAGE_TAG}"
- echo IMAGE=$IMAGE
script:
- mkdir -p ${SECURE_FILES_DOWNLOAD_PATH}
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${SECURE_FILES_DOWNLOAD_PATH}/.netrc
- |
buildah bud \
--secret=id=netrc,src=${SECURE_FILES_DOWNLOAD_PATH}/.netrc \
-f ${CONTAINERFILE} \
--layers --cache-from ${IMAGE_BASE} --cache-to ${IMAGE_BASE} \
-t ${IMAGE} \
--build-arg TOOL_SERVER_URL=${TOOL_SERVER_URL} \
--build-arg FROMAGER_NETWORK_ISOLATION=${FROMAGER_NETWORK_ISOLATION} \
--build-arg-file build-args/common.conf \
--build-arg-file build-args/${VARIANT}.conf \
--build-arg-file build-args/rhelai.conf \
--build-arg BUILDER_IMAGE_VERSION=${IMAGE_TAG} \
.
- buildah push ${IMAGE}
rules:
- if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- collections/*/$VARIANT/*
- collections/global-constraints.txt
- collections/global-requirements.txt
- build-args/*.conf
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- gitlab-ci/images.yml
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $VARIANT == "cpu-ubi9"
changes:
- pipeline-api/*
- collections/api-test/cpu-ubi9/*
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
needs:
- job: linter
optional: true
- job: changelog-linter
optional: true
- job: update-tool-server
optional: true
".api-test-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".api-test-cpu-ubi9-aarch64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".api-test-cpu-ubi9-aarch64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
extends:
- ".api-test-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/api-test/cpu-ubi9/requirements.txt
- collections/api-test/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/api-test/constraints-rules.txt
- collections/api-test/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "false" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "api-test"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
api-test-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS: false
PUBLISH_WHEEL_RELEASES: true
extends:
- ".api-test-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
- job: linter
test-api-test-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".api-test-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $ENABLE_TEST_JOBS == "false"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- collections/api-test/cpu-ubi9/requirements.txt
- collections/api-test/cpu-ubi9/constraints.txt
- collections/**/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
api-test-cpu-ubi9-aarch64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".api-test-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: build
needs:
- job: api-test-cpu-ubi9-aarch64-bootstrap-and-onboard
artifacts: true
api-test-cpu-ubi9-aarch64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".api-test-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: release
needs:
- job: api-test-cpu-ubi9-aarch64-build-wheels
artifacts: true
api-test-cpu-ubi9-aarch64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".api-test-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: api-test-cpu-ubi9-aarch64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and aarch64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
non-accelerated-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
test-non-accelerated-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyzmq-*/*.patch
- overrides/patches/pyzmq/*.patch
- overrides/settings/pyzmq.yaml
- package_plugins/pyzmq.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opencv_python_headless-*/*.patch
- overrides/patches/opencv_python_headless/*.patch
- overrides/settings/opencv_python_headless.yaml
- package_plugins/opencv_python_headless.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdfium2-*/*.patch
- overrides/patches/pypdfium2/*.patch
- overrides/settings/pypdfium2.yaml
- package_plugins/pypdfium2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tesserocr-*/*.patch
- overrides/patches/tesserocr/*.patch
- overrides/settings/tesserocr.yaml
- package_plugins/tesserocr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/certifi-*/*.patch
- overrides/patches/certifi/*.patch
- overrides/settings/certifi.yaml
- package_plugins/certifi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fastapi-*/*.patch
- overrides/patches/fastapi/*.patch
- overrides/settings/fastapi.yaml
- package_plugins/fastapi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/meson-*/*.patch
- overrides/patches/meson/*.patch
- overrides/settings/meson.yaml
- package_plugins/meson.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pydantic_core-*/*.patch
- overrides/patches/pydantic_core/*.patch
- overrides/settings/pydantic_core.yaml
- package_plugins/pydantic_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm_multiprocess-*/*.patch
- overrides/patches/tqdm_multiprocess/*.patch
- overrides/settings/tqdm_multiprocess.yaml
- package_plugins/tqdm_multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_pygments-*/*.patch
- overrides/patches/jupyterlab_pygments/*.patch
- overrides/settings/jupyterlab_pygments.yaml
- package_plugins/jupyterlab_pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sacrebleu-*/*.patch
- overrides/patches/sacrebleu/*.patch
- overrides/settings/sacrebleu.yaml
- package_plugins/sacrebleu.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/yarl-*/*.patch
- overrides/patches/yarl/*.patch
- overrides/settings/yarl.yaml
- package_plugins/yarl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/gast-*/*.patch
- overrides/patches/gast/*.patch
- overrides/settings/gast.yaml
- package_plugins/gast.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flit_core-*/*.patch
- overrides/patches/flit_core/*.patch
- overrides/settings/flit_core.yaml
- package_plugins/flit_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kfp-*/*.patch
- overrides/patches/kfp/*.patch
- overrides/settings/kfp.yaml
- package_plugins/kfp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multiprocess-*/*.patch
- overrides/patches/multiprocess/*.patch
- overrides/settings/multiprocess.yaml
- package_plugins/multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_client-*/*.patch
- overrides/patches/qdrant_client/*.patch
- overrides/settings/qdrant_client.yaml
- package_plugins/qdrant_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/langchain_qdrant-*/*.patch
- overrides/patches/langchain_qdrant/*.patch
- overrides/settings/langchain_qdrant.yaml
- package_plugins/langchain_qdrant.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_haystack-*/*.patch
- overrides/patches/qdrant_haystack/*.patch
- overrides/settings/qdrant_haystack.yaml
- package_plugins/qdrant_haystack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/haystack_ai-*/*.patch
- overrides/patches/haystack_ai/*.patch
- overrides/settings/haystack_ai.yaml
- package_plugins/haystack_ai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack-*/*.patch
- overrides/patches/llama_stack/*.patch
- overrides/settings/llama_stack.yaml
- package_plugins/llama_stack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai-*/*.patch
- overrides/patches/openai/*.patch
- overrides/settings/openai.yaml
- package_plugins/openai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_client-*/*.patch
- overrides/patches/llama_stack_client/*.patch
- overrides/settings/llama_stack_client.yaml
- package_plugins/llama_stack_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h5py-*/*.patch
- overrides/patches/h5py/*.patch
- overrides/settings/h5py.yaml
- package_plugins/h5py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/boto3-*/*.patch
- overrides/patches/boto3/*.patch
- overrides/settings/boto3.yaml
- package_plugins/boto3.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/submodlib_py-*/*.patch
- overrides/patches/submodlib_py/*.patch
- overrides/settings/submodlib_py.yaml
- package_plugins/submodlib_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ipython-*/*.patch
- overrides/patches/ipython/*.patch
- overrides/settings/ipython.yaml
- package_plugins/ipython.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/notebook-*/*.patch
- overrides/patches/notebook/*.patch
- overrides/settings/notebook.yaml
- package_plugins/notebook.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/matplotlib-*/*.patch
- overrides/patches/matplotlib/*.patch
- overrides/settings/matplotlib.yaml
- package_plugins/matplotlib.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mysql_connector_python-*/*.patch
- overrides/patches/mysql_connector_python/*.patch
- overrides/settings/mysql_connector_python.yaml
- package_plugins/mysql_connector_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyodbc-*/*.patch
- overrides/patches/pyodbc/*.patch
- overrides/settings/pyodbc.yaml
- package_plugins/pyodbc.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg-*/*.patch
- overrides/patches/psycopg/*.patch
- overrides/settings/psycopg.yaml
- package_plugins/psycopg.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soxr-*/*.patch
- overrides/patches/soxr/*.patch
- overrides/settings/soxr.yaml
- package_plugins/soxr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/librosa-*/*.patch
- overrides/patches/librosa/*.patch
- overrides/settings/librosa.yaml
- package_plugins/librosa.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soundfile-*/*.patch
- overrides/patches/soundfile/*.patch
- overrides/settings/soundfile.yaml
- package_plugins/soundfile.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hatch_fancy_pypi_readme-*/*.patch
- overrides/patches/hatch_fancy_pypi_readme/*.patch
- overrides/settings/hatch_fancy_pypi_readme.yaml
- package_plugins/hatch_fancy_pypi_readme.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soupsieve-*/*.patch
- overrides/patches/soupsieve/*.patch
- overrides/settings/soupsieve.yaml
- package_plugins/soupsieve.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ply-*/*.patch
- overrides/patches/ply/*.patch
- overrides/settings/ply.yaml
- package_plugins/ply.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sentencepiece-*/*.patch
- overrides/patches/sentencepiece/*.patch
- overrides/settings/sentencepiece.yaml
- package_plugins/sentencepiece.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/argon2_cffi-*/*.patch
- overrides/patches/argon2_cffi/*.patch
- overrides/settings/argon2_cffi.yaml
- package_plugins/argon2_cffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_transfer-*/*.patch
- overrides/patches/hf_transfer/*.patch
- overrides/settings/hf_transfer.yaml
- package_plugins/hf_transfer.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard-*/*.patch
- overrides/patches/tensorboard/*.patch
- overrides/settings/tensorboard.yaml
- package_plugins/tensorboard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard_data_server-*/*.patch
- overrides/patches/tensorboard_data_server/*.patch
- overrides/settings/tensorboard_data_server.yaml
- package_plugins/tensorboard_data_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h11-*/*.patch
- overrides/patches/h11/*.patch
- overrides/settings/h11.yaml
- package_plugins/h11.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/zstandard-*/*.patch
- overrides/patches/zstandard/*.patch
- overrides/settings/zstandard.yaml
- package_plugins/zstandard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mcp-*/*.patch
- overrides/patches/mcp/*.patch
- overrides/settings/mcp.yaml
- package_plugins/mcp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/MarkupSafe-*/*.patch
- overrides/patches/MarkupSafe/*.patch
- overrides/settings/MarkupSafe.yaml
- package_plugins/MarkupSafe.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohappyeyeballs-*/*.patch
- overrides/patches/aiohappyeyeballs/*.patch
- overrides/settings/aiohappyeyeballs.yaml
- package_plugins/aiohappyeyeballs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohttp-*/*.patch
- overrides/patches/aiohttp/*.patch
- overrides/settings/aiohttp.yaml
- package_plugins/aiohttp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosignal-*/*.patch
- overrides/patches/aiosignal/*.patch
- overrides/settings/aiosignal.yaml
- package_plugins/aiosignal.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/attrs-*/*.patch
- overrides/patches/attrs/*.patch
- overrides/settings/attrs.yaml
- package_plugins/attrs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/click-*/*.patch
- overrides/patches/click/*.patch
- overrides/settings/click.yaml
- package_plugins/click.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/filelock-*/*.patch
- overrides/patches/filelock/*.patch
- overrides/settings/filelock.yaml
- package_plugins/filelock.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fire-*/*.patch
- overrides/patches/fire/*.patch
- overrides/settings/fire.yaml
- package_plugins/fire.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/frozenlist-*/*.patch
- overrides/patches/frozenlist/*.patch
- overrides/settings/frozenlist.yaml
- package_plugins/frozenlist.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fsspec-*/*.patch
- overrides/patches/fsspec/*.patch
- overrides/settings/fsspec.yaml
- package_plugins/fsspec.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jinja2-*/*.patch
- overrides/patches/jinja2/*.patch
- overrides/settings/jinja2.yaml
- package_plugins/jinja2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema-*/*.patch
- overrides/patches/jsonschema/*.patch
- overrides/settings/jsonschema.yaml
- package_plugins/jsonschema.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema_specifications-*/*.patch
- overrides/patches/jsonschema_specifications/*.patch
- overrides/settings/jsonschema_specifications.yaml
- package_plugins/jsonschema_specifications.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/markdown_it_py-*/*.patch
- overrides/patches/markdown_it_py/*.patch
- overrides/settings/markdown_it_py.yaml
- package_plugins/markdown_it_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mdurl-*/*.patch
- overrides/patches/mdurl/*.patch
- overrides/settings/mdurl.yaml
- package_plugins/mdurl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multidict-*/*.patch
- overrides/patches/multidict/*.patch
- overrides/settings/multidict.yaml
- package_plugins/multidict.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numpy-*/*.patch
- overrides/patches/numpy/*.patch
- overrides/settings/numpy.yaml
- package_plugins/numpy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/packaging-*/*.patch
- overrides/patches/packaging/*.patch
- overrides/settings/packaging.yaml
- package_plugins/packaging.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pandas-*/*.patch
- overrides/patches/pandas/*.patch
- overrides/settings/pandas.yaml
- package_plugins/pandas.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pillow-*/*.patch
- overrides/patches/pillow/*.patch
- overrides/settings/pillow.yaml
- package_plugins/pillow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/prompt_toolkit-*/*.patch
- overrides/patches/prompt_toolkit/*.patch
- overrides/settings/prompt_toolkit.yaml
- package_plugins/prompt_toolkit.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/propcache-*/*.patch
- overrides/patches/propcache/*.patch
- overrides/settings/propcache.yaml
- package_plugins/propcache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyaml-*/*.patch
- overrides/patches/pyaml/*.patch
- overrides/settings/pyaml.yaml
- package_plugins/pyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyasn1-*/*.patch
- overrides/patches/pyasn1/*.patch
- overrides/settings/pyasn1.yaml
- package_plugins/pyasn1.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pygments-*/*.patch
- overrides/patches/pygments/*.patch
- overrides/settings/pygments.yaml
- package_plugins/pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dateutil-*/*.patch
- overrides/patches/python_dateutil/*.patch
- overrides/settings/python_dateutil.yaml
- package_plugins/python_dateutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dotenv-*/*.patch
- overrides/patches/python_dotenv/*.patch
- overrides/settings/python_dotenv.yaml
- package_plugins/python_dotenv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_jose-*/*.patch
- overrides/patches/python_jose/*.patch
- overrides/settings/python_jose.yaml
- package_plugins/python_jose.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_multipart-*/*.patch
- overrides/patches/python_multipart/*.patch
- overrides/settings/python_multipart.yaml
- package_plugins/python_multipart.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytz-*/*.patch
- overrides/patches/pytz/*.patch
- overrides/settings/pytz.yaml
- package_plugins/pytz.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyyaml-*/*.patch
- overrides/patches/pyyaml/*.patch
- overrides/settings/pyyaml.yaml
- package_plugins/pyyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/referencing-*/*.patch
- overrides/patches/referencing/*.patch
- overrides/settings/referencing.yaml
- package_plugins/referencing.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/regex-*/*.patch
- overrides/patches/regex/*.patch
- overrides/settings/regex.yaml
- package_plugins/regex.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rich-*/*.patch
- overrides/patches/rich/*.patch
- overrides/settings/rich.yaml
- package_plugins/rich.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rpds_py-*/*.patch
- overrides/patches/rpds_py/*.patch
- overrides/settings/rpds_py.yaml
- package_plugins/rpds_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/six-*/*.patch
- overrides/patches/six/*.patch
- overrides/settings/six.yaml
- package_plugins/six.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/termcolor-*/*.patch
- overrides/patches/termcolor/*.patch
- overrides/settings/termcolor.yaml
- package_plugins/termcolor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tiktoken-*/*.patch
- overrides/patches/tiktoken/*.patch
- overrides/settings/tiktoken.yaml
- package_plugins/tiktoken.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tzdata-*/*.patch
- overrides/patches/tzdata/*.patch
- overrides/settings/tzdata.yaml
- package_plugins/tzdata.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wcwidth-*/*.patch
- overrides/patches/wcwidth/*.patch
- overrides/settings/wcwidth.yaml
- package_plugins/wcwidth.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosqlite-*/*.patch
- overrides/patches/aiosqlite/*.patch
- overrides/settings/aiosqlite.yaml
- package_plugins/aiosqlite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/autoevals-*/*.patch
- overrides/patches/autoevals/*.patch
- overrides/settings/autoevals.yaml
- package_plugins/autoevals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/chardet-*/*.patch
- overrides/patches/chardet/*.patch
- overrides/settings/chardet.yaml
- package_plugins/chardet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/datasets-*/*.patch
- overrides/patches/datasets/*.patch
- overrides/settings/datasets.yaml
- package_plugins/datasets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/httpx-*/*.patch
- overrides/patches/httpx/*.patch
- overrides/settings/httpx.yaml
- package_plugins/httpx.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kubernetes-*/*.patch
- overrides/patches/kubernetes/*.patch
- overrides/settings/kubernetes.yaml
- package_plugins/kubernetes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_lmeval-*/*.patch
- overrides/patches/llama_stack_provider_lmeval/*.patch
- overrides/settings/llama_stack_provider_lmeval.yaml
- package_plugins/llama_stack_provider_lmeval.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_trustyai_fms-*/*.patch
- overrides/patches/llama_stack_provider_trustyai_fms/*.patch
- overrides/settings/llama_stack_provider_trustyai_fms.yaml
- package_plugins/llama_stack_provider_trustyai_fms.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nltk-*/*.patch
- overrides/patches/nltk/*.patch
- overrides/settings/nltk.yaml
- package_plugins/nltk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_otlp_proto_http-*/*.patch
- overrides/patches/opentelemetry_exporter_otlp_proto_http/*.patch
- overrides/settings/opentelemetry_exporter_otlp_proto_http.yaml
- package_plugins/opentelemetry_exporter_otlp_proto_http.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_sdk-*/*.patch
- overrides/patches/opentelemetry_sdk/*.patch
- overrides/settings/opentelemetry_sdk.yaml
- package_plugins/opentelemetry_sdk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg2_binary-*/*.patch
- overrides/patches/psycopg2_binary/*.patch
- overrides/settings/psycopg2_binary.yaml
- package_plugins/psycopg2_binary.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymongo-*/*.patch
- overrides/patches/pymongo/*.patch
- overrides/settings/pymongo.yaml
- package_plugins/pymongo.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdf-*/*.patch
- overrides/patches/pypdf/*.patch
- overrides/settings/pypdf.yaml
- package_plugins/pypdf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/redis-*/*.patch
- overrides/patches/redis/*.patch
- overrides/settings/redis.yaml
- package_plugins/redis.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/requests-*/*.patch
- overrides/patches/requests/*.patch
- overrides/settings/requests.yaml
- package_plugins/requests.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scikit_learn-*/*.patch
- overrides/patches/scikit_learn/*.patch
- overrides/settings/scikit_learn.yaml
- package_plugins/scikit_learn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scipy-*/*.patch
- overrides/patches/scipy/*.patch
- overrides/settings/scipy.yaml
- package_plugins/scipy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sqlalchemy-*/*.patch
- overrides/patches/sqlalchemy/*.patch
- overrides/settings/sqlalchemy.yaml
- package_plugins/sqlalchemy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm-*/*.patch
- overrides/patches/tqdm/*.patch
- overrides/settings/tqdm.yaml
- package_plugins/tqdm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/transformers-*/*.patch
- overrides/patches/transformers/*.patch
- overrides/settings/transformers.yaml
- package_plugins/transformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn-*/*.patch
- overrides/patches/uvicorn/*.patch
- overrides/settings/uvicorn.yaml
- package_plugins/uvicorn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymilvus-*/*.patch
- overrides/patches/pymilvus/*.patch
- overrides/settings/pymilvus.yaml
- package_plugins/pymilvus.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/milvus_lite-*/*.patch
- overrides/patches/milvus_lite/*.patch
- overrides/settings/milvus_lite.yaml
- package_plugins/milvus_lite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rtree-*/*.patch
- overrides/patches/rtree/*.patch
- overrides/settings/rtree.yaml
- package_plugins/rtree.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/grpcio-*/*.patch
- overrides/patches/grpcio/*.patch
- overrides/settings/grpcio.yaml
- package_plugins/grpcio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cbor2-*/*.patch
- overrides/patches/cbor2/*.patch
- overrides/settings/cbor2.yaml
- package_plugins/cbor2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/outlines_core-*/*.patch
- overrides/patches/outlines_core/*.patch
- overrides/settings/outlines_core.yaml
- package_plugins/outlines_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/setproctitle-*/*.patch
- overrides/patches/setproctitle/*.patch
- overrides/settings/setproctitle.yaml
- package_plugins/setproctitle.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai_harmony-*/*.patch
- overrides/patches/openai_harmony/*.patch
- overrides/settings/openai_harmony.yaml
- package_plugins/openai_harmony.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uv-*/*.patch
- overrides/patches/uv/*.patch
- overrides/settings/uv.yaml
- package_plugins/uv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psutil-*/*.patch
- overrides/patches/psutil/*.patch
- overrides/settings/psutil.yaml
- package_plugins/psutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/polars-*/*.patch
- overrides/patches/polars/*.patch
- overrides/settings/polars.yaml
- package_plugins/polars.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docker-*/*.patch
- overrides/patches/docker/*.patch
- overrides/settings/docker.yaml
- package_plugins/docker.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn_worker-*/*.patch
- overrides/patches/uvicorn_worker/*.patch
- overrides/settings/uvicorn_worker.yaml
- package_plugins/uvicorn_worker.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
- job: linter
non-accelerated-cpu-ubi9-aarch64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: build
needs:
- job: non-accelerated-cpu-ubi9-aarch64-bootstrap-and-onboard
artifacts: true
non-accelerated-cpu-ubi9-aarch64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: release
needs:
- job: non-accelerated-cpu-ubi9-aarch64-build-wheels
artifacts: true
non-accelerated-cpu-ubi9-aarch64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".non-accelerated-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: non-accelerated-cpu-ubi9-aarch64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and aarch64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".accelerated-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".accelerated-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/accelerated/cpu-ubi9/requirements.txt
- collections/accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/accelerated/constraints-rules.txt
- collections/accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
accelerated-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/accelerated/cpu-ubi9/requirements.txt
- collections/accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/accelerated/constraints-rules.txt
- collections/accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
test-accelerated-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_xet-*/*.patch
- overrides/patches/hf_xet/*.patch
- overrides/settings/hf_xet.yaml
- package_plugins/hf_xet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_openmp-*/*.patch
- overrides/patches/intel_openmp/*.patch
- overrides/settings/intel_openmp.yaml
- package_plugins/intel_openmp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_cmplr_lib_ur-*/*.patch
- overrides/patches/intel_cmplr_lib_ur/*.patch
- overrides/settings/intel_cmplr_lib_ur.yaml
- package_plugins/intel_cmplr_lib_ur.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_extension_for_pytorch-*/*.patch
- overrides/patches/intel_extension_for_pytorch/*.patch
- overrides/settings/intel_extension_for_pytorch.yaml
- package_plugins/intel_extension_for_pytorch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch_tb_profiler-*/*.patch
- overrides/patches/torch_tb_profiler/*.patch
- overrides/settings/torch_tb_profiler.yaml
- package_plugins/torch_tb_profiler.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/huggingface_hub-*/*.patch
- overrides/patches/huggingface_hub/*.patch
- overrides/settings/huggingface_hub.yaml
- package_plugins/huggingface_hub.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling-*/*.patch
- overrides/patches/docling/*.patch
- overrides/settings/docling.yaml
- package_plugins/docling.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_core-*/*.patch
- overrides/patches/docling_core/*.patch
- overrides/settings/docling_core.yaml
- package_plugins/docling_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_parse-*/*.patch
- overrides/patches/docling_parse/*.patch
- overrides/settings/docling_parse.yaml
- package_plugins/docling_parse.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_ibm_models-*/*.patch
- overrides/patches/docling_ibm_models/*.patch
- overrides/settings/docling_ibm_models.yaml
- package_plugins/docling_ibm_models.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/trl-*/*.patch
- overrides/patches/trl/*.patch
- overrides/settings/trl.yaml
- package_plugins/trl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llmcompressor-*/*.patch
- overrides/patches/llmcompressor/*.patch
- overrides/settings/llmcompressor.yaml
- package_plugins/llmcompressor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/liger_kernel-*/*.patch
- overrides/patches/liger_kernel/*.patch
- overrides/settings/liger_kernel.yaml
- package_plugins/liger_kernel.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/lm_eval-*/*.patch
- overrides/patches/lm_eval/*.patch
- overrides/settings/lm_eval.yaml
- package_plugins/lm_eval.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab-*/*.patch
- overrides/patches/jupyterlab/*.patch
- overrides/settings/jupyterlab.yaml
- package_plugins/jupyterlab.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server-*/*.patch
- overrides/patches/jupyter_server/*.patch
- overrides/settings/jupyter_server.yaml
- package_plugins/jupyter_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_mathjax-*/*.patch
- overrides/patches/jupyter_server_mathjax/*.patch
- overrides/settings/jupyter_server_mathjax.yaml
- package_plugins/jupyter_server_mathjax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_proxy-*/*.patch
- overrides/patches/jupyter_server_proxy/*.patch
- overrides/settings/jupyter_server_proxy.yaml
- package_plugins/jupyter_server_proxy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_terminals-*/*.patch
- overrides/patches/jupyter_server_terminals/*.patch
- overrides/settings/jupyter_server_terminals.yaml
- package_plugins/jupyter_server_terminals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_git-*/*.patch
- overrides/patches/jupyterlab_git/*.patch
- overrides/settings/jupyterlab_git.yaml
- package_plugins/jupyterlab_git.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbdime-*/*.patch
- overrides/patches/nbdime/*.patch
- overrides/settings/nbdime.yaml
- package_plugins/nbdime.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbgitpuller-*/*.patch
- overrides/patches/nbgitpuller/*.patch
- overrides/settings/nbgitpuller.yaml
- package_plugins/nbgitpuller.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/litellm-*/*.patch
- overrides/patches/litellm/*.patch
- overrides/settings/litellm.yaml
- package_plugins/litellm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llvmlite-*/*.patch
- overrides/patches/llvmlite/*.patch
- overrides/settings/llvmlite.yaml
- package_plugins/llvmlite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/faiss_cpu-*/*.patch
- overrides/patches/faiss_cpu/*.patch
- overrides/settings/faiss_cpu.yaml
- package_plugins/faiss_cpu.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
- job: linter
accelerated-cpu-ubi9-aarch64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/accelerated/cpu-ubi9/requirements.txt
- collections/accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/accelerated/constraints-rules.txt
- collections/accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: build
needs:
- job: accelerated-cpu-ubi9-aarch64-bootstrap-and-onboard
artifacts: true
accelerated-cpu-ubi9-aarch64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".accelerated-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/accelerated/cpu-ubi9/requirements.txt
- collections/accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/accelerated/constraints-rules.txt
- collections/accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: release
needs:
- job: accelerated-cpu-ubi9-aarch64-build-wheels
artifacts: true
accelerated-cpu-ubi9-aarch64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".accelerated-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: accelerated-cpu-ubi9-aarch64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and aarch64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
torch-2.8.0-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
test-torch-2.8.0-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_openmp-*/*.patch
- overrides/patches/intel_openmp/*.patch
- overrides/settings/intel_openmp.yaml
- package_plugins/intel_openmp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_cmplr_lib_ur-*/*.patch
- overrides/patches/intel_cmplr_lib_ur/*.patch
- overrides/settings/intel_cmplr_lib_ur.yaml
- package_plugins/intel_cmplr_lib_ur.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_extension_for_pytorch-*/*.patch
- overrides/patches/intel_extension_for_pytorch/*.patch
- overrides/settings/intel_extension_for_pytorch.yaml
- package_plugins/intel_extension_for_pytorch.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
- job: linter
torch-2.8.0-cpu-ubi9-aarch64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: build
needs:
- job: torch-2.8.0-cpu-ubi9-aarch64-bootstrap-and-onboard
artifacts: true
torch-2.8.0-cpu-ubi9-aarch64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: release
needs:
- job: torch-2.8.0-cpu-ubi9-aarch64-build-wheels
artifacts: true
torch-2.8.0-cpu-ubi9-aarch64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".torch-2.8.0-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: $PUBLISH_WHEEL_RELEASES == "false"
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
needs:
- job: torch-2.8.0-cpu-ubi9-aarch64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and aarch64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cpu-ubi9/requirements.txt
- collections/torch-2.9.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
torch-2.9.0-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cpu-ubi9/requirements.txt
- collections/torch-2.9.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
test-torch-2.9.0-cpu-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-aarch64
- job: linter
torch-2.9.0-cpu-ubi9-aarch64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cpu-ubi9/requirements.txt
- collections/torch-2.9.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: build
needs:
- job: torch-2.9.0-cpu-ubi9-aarch64-bootstrap-and-onboard
artifacts: true
torch-2.9.0-cpu-ubi9-aarch64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cpu-ubi9/requirements.txt
- collections/torch-2.9.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: release
needs:
- job: torch-2.9.0-cpu-ubi9-aarch64-build-wheels
artifacts: true
torch-2.9.0-cpu-ubi9-aarch64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".torch-2.9.0-cpu-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: torch-2.9.0-cpu-ubi9-aarch64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and aarch64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
build-image-cpu-ubi9-ppc64le:
image: quay.io/buildah/stable:v1.40.1
retry: 0
stage: build-images
interruptible: true
tags:
- aipcc-small-ppc64le
variables:
ARCH: ppc64le
VARIANT: cpu-ubi9
before_script:
- dnf install -y which ncurses
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- |
case ${VARIANT} in
cuda*) CONTAINERFILE="Containerfile.cuda-ubi9" ;;
rocm*) CONTAINERFILE="Containerfile.rocm-ubi9" ;;
*) CONTAINERFILE="Containerfile.${VARIANT}" ;;
esac
- echo CONTAINERFILE=$CONTAINERFILE
- if [ -n "$CI_COMMIT_TAG" ]; then echo "Using tag for version"; IMAGE_TAG="$CI_COMMIT_TAG";
else echo "Generating version from MR IID"; IMAGE_TAG="${BUILDER_IMAGE_VERSION}";
fi
- echo IMAGE_TAG=$IMAGE_TAG
- IMAGE_BASE="${CI_REGISTRY}/${CI_PROJECT_PATH}/builder-${VARIANT}-${ARCH}"
- echo IMAGE_BASE=$IMAGE_BASE
- IMAGE="${IMAGE_BASE}:${IMAGE_TAG}"
- echo IMAGE=$IMAGE
script:
- mkdir -p ${SECURE_FILES_DOWNLOAD_PATH}
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${SECURE_FILES_DOWNLOAD_PATH}/.netrc
- |
buildah bud \
--secret=id=netrc,src=${SECURE_FILES_DOWNLOAD_PATH}/.netrc \
-f ${CONTAINERFILE} \
--layers --cache-from ${IMAGE_BASE} --cache-to ${IMAGE_BASE} \
-t ${IMAGE} \
--build-arg TOOL_SERVER_URL=${TOOL_SERVER_URL} \
--build-arg FROMAGER_NETWORK_ISOLATION=${FROMAGER_NETWORK_ISOLATION} \
--build-arg-file build-args/common.conf \
--build-arg-file build-args/${VARIANT}.conf \
--build-arg-file build-args/rhelai.conf \
--build-arg BUILDER_IMAGE_VERSION=${IMAGE_TAG} \
.
- buildah push ${IMAGE}
rules:
- if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: '"false" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- collections/*/$VARIANT/*
- collections/global-constraints.txt
- collections/global-requirements.txt
- build-args/*.conf
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- gitlab-ci/images.yml
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $VARIANT == "cpu-ubi9"
changes:
- pipeline-api/*
- collections/api-test/cpu-ubi9/*
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
needs:
- job: linter
optional: true
- job: changelog-linter
optional: true
- job: update-tool-server
optional: true
".api-test-cpu-ubi9-ppc64le-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".api-test-cpu-ubi9-ppc64le-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
".api-test-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
extends:
- ".api-test-cpu-ubi9-ppc64le-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/api-test/cpu-ubi9/requirements.txt
- collections/api-test/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/api-test/constraints-rules.txt
- collections/api-test/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "false" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "api-test"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
api-test-cpu-ubi9-ppc64le-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS: false
PUBLISH_WHEEL_RELEASES: true
extends:
- ".api-test-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-ppc64le
- job: linter
test-api-test-cpu-ubi9-ppc64le-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".api-test-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $ENABLE_TEST_JOBS == "false"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- collections/api-test/cpu-ubi9/requirements.txt
- collections/api-test/cpu-ubi9/constraints.txt
- collections/**/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
stage: bootstrap
api-test-cpu-ubi9-ppc64le-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".api-test-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
stage: build
needs:
- job: api-test-cpu-ubi9-ppc64le-bootstrap-and-onboard
artifacts: true
api-test-cpu-ubi9-ppc64le-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: false
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".api-test-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
stage: release
needs:
- job: api-test-cpu-ubi9-ppc64le-build-wheels
artifacts: true
api-test-cpu-ubi9-ppc64le-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".api-test-cpu-ubi9-ppc64le-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: api-test-cpu-ubi9-ppc64le-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and ppc64le arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
non-accelerated-cpu-ubi9-ppc64le-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-ppc64le
test-non-accelerated-cpu-ubi9-ppc64le-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyzmq-*/*.patch
- overrides/patches/pyzmq/*.patch
- overrides/settings/pyzmq.yaml
- package_plugins/pyzmq.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opencv_python_headless-*/*.patch
- overrides/patches/opencv_python_headless/*.patch
- overrides/settings/opencv_python_headless.yaml
- package_plugins/opencv_python_headless.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdfium2-*/*.patch
- overrides/patches/pypdfium2/*.patch
- overrides/settings/pypdfium2.yaml
- package_plugins/pypdfium2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tesserocr-*/*.patch
- overrides/patches/tesserocr/*.patch
- overrides/settings/tesserocr.yaml
- package_plugins/tesserocr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/certifi-*/*.patch
- overrides/patches/certifi/*.patch
- overrides/settings/certifi.yaml
- package_plugins/certifi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fastapi-*/*.patch
- overrides/patches/fastapi/*.patch
- overrides/settings/fastapi.yaml
- package_plugins/fastapi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/meson-*/*.patch
- overrides/patches/meson/*.patch
- overrides/settings/meson.yaml
- package_plugins/meson.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pydantic_core-*/*.patch
- overrides/patches/pydantic_core/*.patch
- overrides/settings/pydantic_core.yaml
- package_plugins/pydantic_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm_multiprocess-*/*.patch
- overrides/patches/tqdm_multiprocess/*.patch
- overrides/settings/tqdm_multiprocess.yaml
- package_plugins/tqdm_multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_pygments-*/*.patch
- overrides/patches/jupyterlab_pygments/*.patch
- overrides/settings/jupyterlab_pygments.yaml
- package_plugins/jupyterlab_pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sacrebleu-*/*.patch
- overrides/patches/sacrebleu/*.patch
- overrides/settings/sacrebleu.yaml
- package_plugins/sacrebleu.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/yarl-*/*.patch
- overrides/patches/yarl/*.patch
- overrides/settings/yarl.yaml
- package_plugins/yarl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/gast-*/*.patch
- overrides/patches/gast/*.patch
- overrides/settings/gast.yaml
- package_plugins/gast.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flit_core-*/*.patch
- overrides/patches/flit_core/*.patch
- overrides/settings/flit_core.yaml
- package_plugins/flit_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kfp-*/*.patch
- overrides/patches/kfp/*.patch
- overrides/settings/kfp.yaml
- package_plugins/kfp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multiprocess-*/*.patch
- overrides/patches/multiprocess/*.patch
- overrides/settings/multiprocess.yaml
- package_plugins/multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_client-*/*.patch
- overrides/patches/qdrant_client/*.patch
- overrides/settings/qdrant_client.yaml
- package_plugins/qdrant_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/langchain_qdrant-*/*.patch
- overrides/patches/langchain_qdrant/*.patch
- overrides/settings/langchain_qdrant.yaml
- package_plugins/langchain_qdrant.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_haystack-*/*.patch
- overrides/patches/qdrant_haystack/*.patch
- overrides/settings/qdrant_haystack.yaml
- package_plugins/qdrant_haystack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/haystack_ai-*/*.patch
- overrides/patches/haystack_ai/*.patch
- overrides/settings/haystack_ai.yaml
- package_plugins/haystack_ai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack-*/*.patch
- overrides/patches/llama_stack/*.patch
- overrides/settings/llama_stack.yaml
- package_plugins/llama_stack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai-*/*.patch
- overrides/patches/openai/*.patch
- overrides/settings/openai.yaml
- package_plugins/openai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_client-*/*.patch
- overrides/patches/llama_stack_client/*.patch
- overrides/settings/llama_stack_client.yaml
- package_plugins/llama_stack_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h5py-*/*.patch
- overrides/patches/h5py/*.patch
- overrides/settings/h5py.yaml
- package_plugins/h5py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/boto3-*/*.patch
- overrides/patches/boto3/*.patch
- overrides/settings/boto3.yaml
- package_plugins/boto3.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/submodlib_py-*/*.patch
- overrides/patches/submodlib_py/*.patch
- overrides/settings/submodlib_py.yaml
- package_plugins/submodlib_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ipython-*/*.patch
- overrides/patches/ipython/*.patch
- overrides/settings/ipython.yaml
- package_plugins/ipython.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/notebook-*/*.patch
- overrides/patches/notebook/*.patch
- overrides/settings/notebook.yaml
- package_plugins/notebook.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/matplotlib-*/*.patch
- overrides/patches/matplotlib/*.patch
- overrides/settings/matplotlib.yaml
- package_plugins/matplotlib.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mysql_connector_python-*/*.patch
- overrides/patches/mysql_connector_python/*.patch
- overrides/settings/mysql_connector_python.yaml
- package_plugins/mysql_connector_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyodbc-*/*.patch
- overrides/patches/pyodbc/*.patch
- overrides/settings/pyodbc.yaml
- package_plugins/pyodbc.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg-*/*.patch
- overrides/patches/psycopg/*.patch
- overrides/settings/psycopg.yaml
- package_plugins/psycopg.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soxr-*/*.patch
- overrides/patches/soxr/*.patch
- overrides/settings/soxr.yaml
- package_plugins/soxr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/librosa-*/*.patch
- overrides/patches/librosa/*.patch
- overrides/settings/librosa.yaml
- package_plugins/librosa.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soundfile-*/*.patch
- overrides/patches/soundfile/*.patch
- overrides/settings/soundfile.yaml
- package_plugins/soundfile.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hatch_fancy_pypi_readme-*/*.patch
- overrides/patches/hatch_fancy_pypi_readme/*.patch
- overrides/settings/hatch_fancy_pypi_readme.yaml
- package_plugins/hatch_fancy_pypi_readme.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soupsieve-*/*.patch
- overrides/patches/soupsieve/*.patch
- overrides/settings/soupsieve.yaml
- package_plugins/soupsieve.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ply-*/*.patch
- overrides/patches/ply/*.patch
- overrides/settings/ply.yaml
- package_plugins/ply.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sentencepiece-*/*.patch
- overrides/patches/sentencepiece/*.patch
- overrides/settings/sentencepiece.yaml
- package_plugins/sentencepiece.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/argon2_cffi-*/*.patch
- overrides/patches/argon2_cffi/*.patch
- overrides/settings/argon2_cffi.yaml
- package_plugins/argon2_cffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_transfer-*/*.patch
- overrides/patches/hf_transfer/*.patch
- overrides/settings/hf_transfer.yaml
- package_plugins/hf_transfer.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard-*/*.patch
- overrides/patches/tensorboard/*.patch
- overrides/settings/tensorboard.yaml
- package_plugins/tensorboard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard_data_server-*/*.patch
- overrides/patches/tensorboard_data_server/*.patch
- overrides/settings/tensorboard_data_server.yaml
- package_plugins/tensorboard_data_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h11-*/*.patch
- overrides/patches/h11/*.patch
- overrides/settings/h11.yaml
- package_plugins/h11.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/zstandard-*/*.patch
- overrides/patches/zstandard/*.patch
- overrides/settings/zstandard.yaml
- package_plugins/zstandard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mcp-*/*.patch
- overrides/patches/mcp/*.patch
- overrides/settings/mcp.yaml
- package_plugins/mcp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/MarkupSafe-*/*.patch
- overrides/patches/MarkupSafe/*.patch
- overrides/settings/MarkupSafe.yaml
- package_plugins/MarkupSafe.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohappyeyeballs-*/*.patch
- overrides/patches/aiohappyeyeballs/*.patch
- overrides/settings/aiohappyeyeballs.yaml
- package_plugins/aiohappyeyeballs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohttp-*/*.patch
- overrides/patches/aiohttp/*.patch
- overrides/settings/aiohttp.yaml
- package_plugins/aiohttp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosignal-*/*.patch
- overrides/patches/aiosignal/*.patch
- overrides/settings/aiosignal.yaml
- package_plugins/aiosignal.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/attrs-*/*.patch
- overrides/patches/attrs/*.patch
- overrides/settings/attrs.yaml
- package_plugins/attrs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/click-*/*.patch
- overrides/patches/click/*.patch
- overrides/settings/click.yaml
- package_plugins/click.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/filelock-*/*.patch
- overrides/patches/filelock/*.patch
- overrides/settings/filelock.yaml
- package_plugins/filelock.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fire-*/*.patch
- overrides/patches/fire/*.patch
- overrides/settings/fire.yaml
- package_plugins/fire.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/frozenlist-*/*.patch
- overrides/patches/frozenlist/*.patch
- overrides/settings/frozenlist.yaml
- package_plugins/frozenlist.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fsspec-*/*.patch
- overrides/patches/fsspec/*.patch
- overrides/settings/fsspec.yaml
- package_plugins/fsspec.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jinja2-*/*.patch
- overrides/patches/jinja2/*.patch
- overrides/settings/jinja2.yaml
- package_plugins/jinja2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema-*/*.patch
- overrides/patches/jsonschema/*.patch
- overrides/settings/jsonschema.yaml
- package_plugins/jsonschema.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema_specifications-*/*.patch
- overrides/patches/jsonschema_specifications/*.patch
- overrides/settings/jsonschema_specifications.yaml
- package_plugins/jsonschema_specifications.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/markdown_it_py-*/*.patch
- overrides/patches/markdown_it_py/*.patch
- overrides/settings/markdown_it_py.yaml
- package_plugins/markdown_it_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mdurl-*/*.patch
- overrides/patches/mdurl/*.patch
- overrides/settings/mdurl.yaml
- package_plugins/mdurl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multidict-*/*.patch
- overrides/patches/multidict/*.patch
- overrides/settings/multidict.yaml
- package_plugins/multidict.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numpy-*/*.patch
- overrides/patches/numpy/*.patch
- overrides/settings/numpy.yaml
- package_plugins/numpy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/packaging-*/*.patch
- overrides/patches/packaging/*.patch
- overrides/settings/packaging.yaml
- package_plugins/packaging.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pandas-*/*.patch
- overrides/patches/pandas/*.patch
- overrides/settings/pandas.yaml
- package_plugins/pandas.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pillow-*/*.patch
- overrides/patches/pillow/*.patch
- overrides/settings/pillow.yaml
- package_plugins/pillow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/prompt_toolkit-*/*.patch
- overrides/patches/prompt_toolkit/*.patch
- overrides/settings/prompt_toolkit.yaml
- package_plugins/prompt_toolkit.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/propcache-*/*.patch
- overrides/patches/propcache/*.patch
- overrides/settings/propcache.yaml
- package_plugins/propcache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyaml-*/*.patch
- overrides/patches/pyaml/*.patch
- overrides/settings/pyaml.yaml
- package_plugins/pyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyasn1-*/*.patch
- overrides/patches/pyasn1/*.patch
- overrides/settings/pyasn1.yaml
- package_plugins/pyasn1.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pygments-*/*.patch
- overrides/patches/pygments/*.patch
- overrides/settings/pygments.yaml
- package_plugins/pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dateutil-*/*.patch
- overrides/patches/python_dateutil/*.patch
- overrides/settings/python_dateutil.yaml
- package_plugins/python_dateutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dotenv-*/*.patch
- overrides/patches/python_dotenv/*.patch
- overrides/settings/python_dotenv.yaml
- package_plugins/python_dotenv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_jose-*/*.patch
- overrides/patches/python_jose/*.patch
- overrides/settings/python_jose.yaml
- package_plugins/python_jose.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_multipart-*/*.patch
- overrides/patches/python_multipart/*.patch
- overrides/settings/python_multipart.yaml
- package_plugins/python_multipart.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytz-*/*.patch
- overrides/patches/pytz/*.patch
- overrides/settings/pytz.yaml
- package_plugins/pytz.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyyaml-*/*.patch
- overrides/patches/pyyaml/*.patch
- overrides/settings/pyyaml.yaml
- package_plugins/pyyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/referencing-*/*.patch
- overrides/patches/referencing/*.patch
- overrides/settings/referencing.yaml
- package_plugins/referencing.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/regex-*/*.patch
- overrides/patches/regex/*.patch
- overrides/settings/regex.yaml
- package_plugins/regex.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rich-*/*.patch
- overrides/patches/rich/*.patch
- overrides/settings/rich.yaml
- package_plugins/rich.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rpds_py-*/*.patch
- overrides/patches/rpds_py/*.patch
- overrides/settings/rpds_py.yaml
- package_plugins/rpds_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/six-*/*.patch
- overrides/patches/six/*.patch
- overrides/settings/six.yaml
- package_plugins/six.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/termcolor-*/*.patch
- overrides/patches/termcolor/*.patch
- overrides/settings/termcolor.yaml
- package_plugins/termcolor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tiktoken-*/*.patch
- overrides/patches/tiktoken/*.patch
- overrides/settings/tiktoken.yaml
- package_plugins/tiktoken.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tzdata-*/*.patch
- overrides/patches/tzdata/*.patch
- overrides/settings/tzdata.yaml
- package_plugins/tzdata.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wcwidth-*/*.patch
- overrides/patches/wcwidth/*.patch
- overrides/settings/wcwidth.yaml
- package_plugins/wcwidth.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosqlite-*/*.patch
- overrides/patches/aiosqlite/*.patch
- overrides/settings/aiosqlite.yaml
- package_plugins/aiosqlite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/autoevals-*/*.patch
- overrides/patches/autoevals/*.patch
- overrides/settings/autoevals.yaml
- package_plugins/autoevals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/chardet-*/*.patch
- overrides/patches/chardet/*.patch
- overrides/settings/chardet.yaml
- package_plugins/chardet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/datasets-*/*.patch
- overrides/patches/datasets/*.patch
- overrides/settings/datasets.yaml
- package_plugins/datasets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/httpx-*/*.patch
- overrides/patches/httpx/*.patch
- overrides/settings/httpx.yaml
- package_plugins/httpx.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kubernetes-*/*.patch
- overrides/patches/kubernetes/*.patch
- overrides/settings/kubernetes.yaml
- package_plugins/kubernetes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_lmeval-*/*.patch
- overrides/patches/llama_stack_provider_lmeval/*.patch
- overrides/settings/llama_stack_provider_lmeval.yaml
- package_plugins/llama_stack_provider_lmeval.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_trustyai_fms-*/*.patch
- overrides/patches/llama_stack_provider_trustyai_fms/*.patch
- overrides/settings/llama_stack_provider_trustyai_fms.yaml
- package_plugins/llama_stack_provider_trustyai_fms.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nltk-*/*.patch
- overrides/patches/nltk/*.patch
- overrides/settings/nltk.yaml
- package_plugins/nltk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_otlp_proto_http-*/*.patch
- overrides/patches/opentelemetry_exporter_otlp_proto_http/*.patch
- overrides/settings/opentelemetry_exporter_otlp_proto_http.yaml
- package_plugins/opentelemetry_exporter_otlp_proto_http.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_sdk-*/*.patch
- overrides/patches/opentelemetry_sdk/*.patch
- overrides/settings/opentelemetry_sdk.yaml
- package_plugins/opentelemetry_sdk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg2_binary-*/*.patch
- overrides/patches/psycopg2_binary/*.patch
- overrides/settings/psycopg2_binary.yaml
- package_plugins/psycopg2_binary.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymongo-*/*.patch
- overrides/patches/pymongo/*.patch
- overrides/settings/pymongo.yaml
- package_plugins/pymongo.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdf-*/*.patch
- overrides/patches/pypdf/*.patch
- overrides/settings/pypdf.yaml
- package_plugins/pypdf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/redis-*/*.patch
- overrides/patches/redis/*.patch
- overrides/settings/redis.yaml
- package_plugins/redis.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/requests-*/*.patch
- overrides/patches/requests/*.patch
- overrides/settings/requests.yaml
- package_plugins/requests.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scikit_learn-*/*.patch
- overrides/patches/scikit_learn/*.patch
- overrides/settings/scikit_learn.yaml
- package_plugins/scikit_learn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scipy-*/*.patch
- overrides/patches/scipy/*.patch
- overrides/settings/scipy.yaml
- package_plugins/scipy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sqlalchemy-*/*.patch
- overrides/patches/sqlalchemy/*.patch
- overrides/settings/sqlalchemy.yaml
- package_plugins/sqlalchemy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm-*/*.patch
- overrides/patches/tqdm/*.patch
- overrides/settings/tqdm.yaml
- package_plugins/tqdm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/transformers-*/*.patch
- overrides/patches/transformers/*.patch
- overrides/settings/transformers.yaml
- package_plugins/transformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn-*/*.patch
- overrides/patches/uvicorn/*.patch
- overrides/settings/uvicorn.yaml
- package_plugins/uvicorn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymilvus-*/*.patch
- overrides/patches/pymilvus/*.patch
- overrides/settings/pymilvus.yaml
- package_plugins/pymilvus.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/milvus_lite-*/*.patch
- overrides/patches/milvus_lite/*.patch
- overrides/settings/milvus_lite.yaml
- package_plugins/milvus_lite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rtree-*/*.patch
- overrides/patches/rtree/*.patch
- overrides/settings/rtree.yaml
- package_plugins/rtree.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/grpcio-*/*.patch
- overrides/patches/grpcio/*.patch
- overrides/settings/grpcio.yaml
- package_plugins/grpcio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cbor2-*/*.patch
- overrides/patches/cbor2/*.patch
- overrides/settings/cbor2.yaml
- package_plugins/cbor2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/outlines_core-*/*.patch
- overrides/patches/outlines_core/*.patch
- overrides/settings/outlines_core.yaml
- package_plugins/outlines_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/setproctitle-*/*.patch
- overrides/patches/setproctitle/*.patch
- overrides/settings/setproctitle.yaml
- package_plugins/setproctitle.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai_harmony-*/*.patch
- overrides/patches/openai_harmony/*.patch
- overrides/settings/openai_harmony.yaml
- package_plugins/openai_harmony.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uv-*/*.patch
- overrides/patches/uv/*.patch
- overrides/settings/uv.yaml
- package_plugins/uv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psutil-*/*.patch
- overrides/patches/psutil/*.patch
- overrides/settings/psutil.yaml
- package_plugins/psutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/polars-*/*.patch
- overrides/patches/polars/*.patch
- overrides/settings/polars.yaml
- package_plugins/polars.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docker-*/*.patch
- overrides/patches/docker/*.patch
- overrides/settings/docker.yaml
- package_plugins/docker.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn_worker-*/*.patch
- overrides/patches/uvicorn_worker/*.patch
- overrides/settings/uvicorn_worker.yaml
- package_plugins/uvicorn_worker.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-ppc64le
- job: linter
non-accelerated-cpu-ubi9-ppc64le-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
stage: build
needs:
- job: non-accelerated-cpu-ubi9-ppc64le-bootstrap-and-onboard
artifacts: true
non-accelerated-cpu-ubi9-ppc64le-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: ppc64le
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-ppc64le"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-ppc64le"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"false" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-ppc64le
stage: release
needs:
- job: non-accelerated-cpu-ubi9-ppc64le-build-wheels
artifacts: true
non-accelerated-cpu-ubi9-ppc64le-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-ppc64le"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".non-accelerated-cpu-ubi9-ppc64le-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: non-accelerated-cpu-ubi9-ppc64le-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and ppc64le arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
build-image-cpu-ubi9-s390x:
image: quay.io/buildah/stable:v1.40.1
retry: 1
stage: build-images
interruptible: true
tags:
- aipcc-small-s390x
variables:
ARCH: s390x
VARIANT: cpu-ubi9
before_script:
- dnf install -y which ncurses
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- |
case ${VARIANT} in
cuda*) CONTAINERFILE="Containerfile.cuda-ubi9" ;;
rocm*) CONTAINERFILE="Containerfile.rocm-ubi9" ;;
*) CONTAINERFILE="Containerfile.${VARIANT}" ;;
esac
- echo CONTAINERFILE=$CONTAINERFILE
- if [ -n "$CI_COMMIT_TAG" ]; then echo "Using tag for version"; IMAGE_TAG="$CI_COMMIT_TAG";
else echo "Generating version from MR IID"; IMAGE_TAG="${BUILDER_IMAGE_VERSION}";
fi
- echo IMAGE_TAG=$IMAGE_TAG
- IMAGE_BASE="${CI_REGISTRY}/${CI_PROJECT_PATH}/builder-${VARIANT}-${ARCH}"
- echo IMAGE_BASE=$IMAGE_BASE
- IMAGE="${IMAGE_BASE}:${IMAGE_TAG}"
- echo IMAGE=$IMAGE
script:
- mkdir -p ${SECURE_FILES_DOWNLOAD_PATH}
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${SECURE_FILES_DOWNLOAD_PATH}/.netrc
- |
buildah bud \
--secret=id=netrc,src=${SECURE_FILES_DOWNLOAD_PATH}/.netrc \
-f ${CONTAINERFILE} \
--layers --cache-from ${IMAGE_BASE} --cache-to ${IMAGE_BASE} \
-t ${IMAGE} \
--build-arg TOOL_SERVER_URL=${TOOL_SERVER_URL} \
--build-arg FROMAGER_NETWORK_ISOLATION=${FROMAGER_NETWORK_ISOLATION} \
--build-arg-file build-args/common.conf \
--build-arg-file build-args/${VARIANT}.conf \
--build-arg-file build-args/rhelai.conf \
--build-arg BUILDER_IMAGE_VERSION=${IMAGE_TAG} \
.
- buildah push ${IMAGE}
rules:
- if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- collections/*/$VARIANT/*
- collections/global-constraints.txt
- collections/global-requirements.txt
- build-args/*.conf
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- gitlab-ci/images.yml
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $VARIANT == "cpu-ubi9"
changes:
- pipeline-api/*
- collections/api-test/cpu-ubi9/*
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
needs:
- job: linter
optional: true
- job: changelog-linter
optional: true
- job: update-tool-server
optional: true
".api-test-cpu-ubi9-s390x-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".api-test-cpu-ubi9-s390x-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".api-test-cpu-ubi9-s390x-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
extends:
- ".api-test-cpu-ubi9-s390x-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/api-test/cpu-ubi9/requirements.txt
- collections/api-test/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/api-test/constraints-rules.txt
- collections/api-test/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "api-test"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
api-test-cpu-ubi9-s390x-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS: false
PUBLISH_WHEEL_RELEASES: true
extends:
- ".api-test-cpu-ubi9-s390x-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-s390x
- job: linter
test-api-test-cpu-ubi9-s390x-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".api-test-cpu-ubi9-s390x-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $ENABLE_TEST_JOBS == "false"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- collections/api-test/cpu-ubi9/requirements.txt
- collections/api-test/cpu-ubi9/constraints.txt
- collections/**/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
stage: bootstrap
api-test-cpu-ubi9-s390x-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".api-test-cpu-ubi9-s390x-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
stage: build
needs:
- job: api-test-cpu-ubi9-s390x-bootstrap-and-onboard
artifacts: true
api-test-cpu-ubi9-s390x-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".api-test-cpu-ubi9-s390x-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
stage: release
needs:
- job: api-test-cpu-ubi9-s390x-build-wheels
artifacts: true
api-test-cpu-ubi9-s390x-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".api-test-cpu-ubi9-s390x-wheel-pipeline-release-variables-base-job"
stage: release
retry: 1
interruptible: true
rules:
- when: never
needs:
- job: api-test-cpu-ubi9-s390x-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and s390x arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
non-accelerated-cpu-ubi9-s390x-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-s390x
test-non-accelerated-cpu-ubi9-s390x-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyzmq-*/*.patch
- overrides/patches/pyzmq/*.patch
- overrides/settings/pyzmq.yaml
- package_plugins/pyzmq.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opencv_python_headless-*/*.patch
- overrides/patches/opencv_python_headless/*.patch
- overrides/settings/opencv_python_headless.yaml
- package_plugins/opencv_python_headless.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdfium2-*/*.patch
- overrides/patches/pypdfium2/*.patch
- overrides/settings/pypdfium2.yaml
- package_plugins/pypdfium2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tesserocr-*/*.patch
- overrides/patches/tesserocr/*.patch
- overrides/settings/tesserocr.yaml
- package_plugins/tesserocr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/certifi-*/*.patch
- overrides/patches/certifi/*.patch
- overrides/settings/certifi.yaml
- package_plugins/certifi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fastapi-*/*.patch
- overrides/patches/fastapi/*.patch
- overrides/settings/fastapi.yaml
- package_plugins/fastapi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/meson-*/*.patch
- overrides/patches/meson/*.patch
- overrides/settings/meson.yaml
- package_plugins/meson.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pydantic_core-*/*.patch
- overrides/patches/pydantic_core/*.patch
- overrides/settings/pydantic_core.yaml
- package_plugins/pydantic_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm_multiprocess-*/*.patch
- overrides/patches/tqdm_multiprocess/*.patch
- overrides/settings/tqdm_multiprocess.yaml
- package_plugins/tqdm_multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_pygments-*/*.patch
- overrides/patches/jupyterlab_pygments/*.patch
- overrides/settings/jupyterlab_pygments.yaml
- package_plugins/jupyterlab_pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sacrebleu-*/*.patch
- overrides/patches/sacrebleu/*.patch
- overrides/settings/sacrebleu.yaml
- package_plugins/sacrebleu.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/yarl-*/*.patch
- overrides/patches/yarl/*.patch
- overrides/settings/yarl.yaml
- package_plugins/yarl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/gast-*/*.patch
- overrides/patches/gast/*.patch
- overrides/settings/gast.yaml
- package_plugins/gast.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flit_core-*/*.patch
- overrides/patches/flit_core/*.patch
- overrides/settings/flit_core.yaml
- package_plugins/flit_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kfp-*/*.patch
- overrides/patches/kfp/*.patch
- overrides/settings/kfp.yaml
- package_plugins/kfp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multiprocess-*/*.patch
- overrides/patches/multiprocess/*.patch
- overrides/settings/multiprocess.yaml
- package_plugins/multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_client-*/*.patch
- overrides/patches/qdrant_client/*.patch
- overrides/settings/qdrant_client.yaml
- package_plugins/qdrant_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/langchain_qdrant-*/*.patch
- overrides/patches/langchain_qdrant/*.patch
- overrides/settings/langchain_qdrant.yaml
- package_plugins/langchain_qdrant.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_haystack-*/*.patch
- overrides/patches/qdrant_haystack/*.patch
- overrides/settings/qdrant_haystack.yaml
- package_plugins/qdrant_haystack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/haystack_ai-*/*.patch
- overrides/patches/haystack_ai/*.patch
- overrides/settings/haystack_ai.yaml
- package_plugins/haystack_ai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack-*/*.patch
- overrides/patches/llama_stack/*.patch
- overrides/settings/llama_stack.yaml
- package_plugins/llama_stack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai-*/*.patch
- overrides/patches/openai/*.patch
- overrides/settings/openai.yaml
- package_plugins/openai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_client-*/*.patch
- overrides/patches/llama_stack_client/*.patch
- overrides/settings/llama_stack_client.yaml
- package_plugins/llama_stack_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h5py-*/*.patch
- overrides/patches/h5py/*.patch
- overrides/settings/h5py.yaml
- package_plugins/h5py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/boto3-*/*.patch
- overrides/patches/boto3/*.patch
- overrides/settings/boto3.yaml
- package_plugins/boto3.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/submodlib_py-*/*.patch
- overrides/patches/submodlib_py/*.patch
- overrides/settings/submodlib_py.yaml
- package_plugins/submodlib_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ipython-*/*.patch
- overrides/patches/ipython/*.patch
- overrides/settings/ipython.yaml
- package_plugins/ipython.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/notebook-*/*.patch
- overrides/patches/notebook/*.patch
- overrides/settings/notebook.yaml
- package_plugins/notebook.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/matplotlib-*/*.patch
- overrides/patches/matplotlib/*.patch
- overrides/settings/matplotlib.yaml
- package_plugins/matplotlib.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mysql_connector_python-*/*.patch
- overrides/patches/mysql_connector_python/*.patch
- overrides/settings/mysql_connector_python.yaml
- package_plugins/mysql_connector_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyodbc-*/*.patch
- overrides/patches/pyodbc/*.patch
- overrides/settings/pyodbc.yaml
- package_plugins/pyodbc.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg-*/*.patch
- overrides/patches/psycopg/*.patch
- overrides/settings/psycopg.yaml
- package_plugins/psycopg.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soxr-*/*.patch
- overrides/patches/soxr/*.patch
- overrides/settings/soxr.yaml
- package_plugins/soxr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/librosa-*/*.patch
- overrides/patches/librosa/*.patch
- overrides/settings/librosa.yaml
- package_plugins/librosa.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soundfile-*/*.patch
- overrides/patches/soundfile/*.patch
- overrides/settings/soundfile.yaml
- package_plugins/soundfile.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hatch_fancy_pypi_readme-*/*.patch
- overrides/patches/hatch_fancy_pypi_readme/*.patch
- overrides/settings/hatch_fancy_pypi_readme.yaml
- package_plugins/hatch_fancy_pypi_readme.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soupsieve-*/*.patch
- overrides/patches/soupsieve/*.patch
- overrides/settings/soupsieve.yaml
- package_plugins/soupsieve.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ply-*/*.patch
- overrides/patches/ply/*.patch
- overrides/settings/ply.yaml
- package_plugins/ply.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sentencepiece-*/*.patch
- overrides/patches/sentencepiece/*.patch
- overrides/settings/sentencepiece.yaml
- package_plugins/sentencepiece.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/argon2_cffi-*/*.patch
- overrides/patches/argon2_cffi/*.patch
- overrides/settings/argon2_cffi.yaml
- package_plugins/argon2_cffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_transfer-*/*.patch
- overrides/patches/hf_transfer/*.patch
- overrides/settings/hf_transfer.yaml
- package_plugins/hf_transfer.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard-*/*.patch
- overrides/patches/tensorboard/*.patch
- overrides/settings/tensorboard.yaml
- package_plugins/tensorboard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard_data_server-*/*.patch
- overrides/patches/tensorboard_data_server/*.patch
- overrides/settings/tensorboard_data_server.yaml
- package_plugins/tensorboard_data_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h11-*/*.patch
- overrides/patches/h11/*.patch
- overrides/settings/h11.yaml
- package_plugins/h11.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/zstandard-*/*.patch
- overrides/patches/zstandard/*.patch
- overrides/settings/zstandard.yaml
- package_plugins/zstandard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mcp-*/*.patch
- overrides/patches/mcp/*.patch
- overrides/settings/mcp.yaml
- package_plugins/mcp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/MarkupSafe-*/*.patch
- overrides/patches/MarkupSafe/*.patch
- overrides/settings/MarkupSafe.yaml
- package_plugins/MarkupSafe.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohappyeyeballs-*/*.patch
- overrides/patches/aiohappyeyeballs/*.patch
- overrides/settings/aiohappyeyeballs.yaml
- package_plugins/aiohappyeyeballs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohttp-*/*.patch
- overrides/patches/aiohttp/*.patch
- overrides/settings/aiohttp.yaml
- package_plugins/aiohttp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosignal-*/*.patch
- overrides/patches/aiosignal/*.patch
- overrides/settings/aiosignal.yaml
- package_plugins/aiosignal.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/attrs-*/*.patch
- overrides/patches/attrs/*.patch
- overrides/settings/attrs.yaml
- package_plugins/attrs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/click-*/*.patch
- overrides/patches/click/*.patch
- overrides/settings/click.yaml
- package_plugins/click.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/filelock-*/*.patch
- overrides/patches/filelock/*.patch
- overrides/settings/filelock.yaml
- package_plugins/filelock.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fire-*/*.patch
- overrides/patches/fire/*.patch
- overrides/settings/fire.yaml
- package_plugins/fire.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/frozenlist-*/*.patch
- overrides/patches/frozenlist/*.patch
- overrides/settings/frozenlist.yaml
- package_plugins/frozenlist.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fsspec-*/*.patch
- overrides/patches/fsspec/*.patch
- overrides/settings/fsspec.yaml
- package_plugins/fsspec.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jinja2-*/*.patch
- overrides/patches/jinja2/*.patch
- overrides/settings/jinja2.yaml
- package_plugins/jinja2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema-*/*.patch
- overrides/patches/jsonschema/*.patch
- overrides/settings/jsonschema.yaml
- package_plugins/jsonschema.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema_specifications-*/*.patch
- overrides/patches/jsonschema_specifications/*.patch
- overrides/settings/jsonschema_specifications.yaml
- package_plugins/jsonschema_specifications.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/markdown_it_py-*/*.patch
- overrides/patches/markdown_it_py/*.patch
- overrides/settings/markdown_it_py.yaml
- package_plugins/markdown_it_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mdurl-*/*.patch
- overrides/patches/mdurl/*.patch
- overrides/settings/mdurl.yaml
- package_plugins/mdurl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multidict-*/*.patch
- overrides/patches/multidict/*.patch
- overrides/settings/multidict.yaml
- package_plugins/multidict.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numpy-*/*.patch
- overrides/patches/numpy/*.patch
- overrides/settings/numpy.yaml
- package_plugins/numpy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/packaging-*/*.patch
- overrides/patches/packaging/*.patch
- overrides/settings/packaging.yaml
- package_plugins/packaging.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pandas-*/*.patch
- overrides/patches/pandas/*.patch
- overrides/settings/pandas.yaml
- package_plugins/pandas.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pillow-*/*.patch
- overrides/patches/pillow/*.patch
- overrides/settings/pillow.yaml
- package_plugins/pillow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/prompt_toolkit-*/*.patch
- overrides/patches/prompt_toolkit/*.patch
- overrides/settings/prompt_toolkit.yaml
- package_plugins/prompt_toolkit.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/propcache-*/*.patch
- overrides/patches/propcache/*.patch
- overrides/settings/propcache.yaml
- package_plugins/propcache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyaml-*/*.patch
- overrides/patches/pyaml/*.patch
- overrides/settings/pyaml.yaml
- package_plugins/pyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyasn1-*/*.patch
- overrides/patches/pyasn1/*.patch
- overrides/settings/pyasn1.yaml
- package_plugins/pyasn1.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pygments-*/*.patch
- overrides/patches/pygments/*.patch
- overrides/settings/pygments.yaml
- package_plugins/pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dateutil-*/*.patch
- overrides/patches/python_dateutil/*.patch
- overrides/settings/python_dateutil.yaml
- package_plugins/python_dateutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dotenv-*/*.patch
- overrides/patches/python_dotenv/*.patch
- overrides/settings/python_dotenv.yaml
- package_plugins/python_dotenv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_jose-*/*.patch
- overrides/patches/python_jose/*.patch
- overrides/settings/python_jose.yaml
- package_plugins/python_jose.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_multipart-*/*.patch
- overrides/patches/python_multipart/*.patch
- overrides/settings/python_multipart.yaml
- package_plugins/python_multipart.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytz-*/*.patch
- overrides/patches/pytz/*.patch
- overrides/settings/pytz.yaml
- package_plugins/pytz.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyyaml-*/*.patch
- overrides/patches/pyyaml/*.patch
- overrides/settings/pyyaml.yaml
- package_plugins/pyyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/referencing-*/*.patch
- overrides/patches/referencing/*.patch
- overrides/settings/referencing.yaml
- package_plugins/referencing.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/regex-*/*.patch
- overrides/patches/regex/*.patch
- overrides/settings/regex.yaml
- package_plugins/regex.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rich-*/*.patch
- overrides/patches/rich/*.patch
- overrides/settings/rich.yaml
- package_plugins/rich.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rpds_py-*/*.patch
- overrides/patches/rpds_py/*.patch
- overrides/settings/rpds_py.yaml
- package_plugins/rpds_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/six-*/*.patch
- overrides/patches/six/*.patch
- overrides/settings/six.yaml
- package_plugins/six.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/termcolor-*/*.patch
- overrides/patches/termcolor/*.patch
- overrides/settings/termcolor.yaml
- package_plugins/termcolor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tiktoken-*/*.patch
- overrides/patches/tiktoken/*.patch
- overrides/settings/tiktoken.yaml
- package_plugins/tiktoken.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tzdata-*/*.patch
- overrides/patches/tzdata/*.patch
- overrides/settings/tzdata.yaml
- package_plugins/tzdata.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wcwidth-*/*.patch
- overrides/patches/wcwidth/*.patch
- overrides/settings/wcwidth.yaml
- package_plugins/wcwidth.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosqlite-*/*.patch
- overrides/patches/aiosqlite/*.patch
- overrides/settings/aiosqlite.yaml
- package_plugins/aiosqlite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/autoevals-*/*.patch
- overrides/patches/autoevals/*.patch
- overrides/settings/autoevals.yaml
- package_plugins/autoevals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/chardet-*/*.patch
- overrides/patches/chardet/*.patch
- overrides/settings/chardet.yaml
- package_plugins/chardet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/datasets-*/*.patch
- overrides/patches/datasets/*.patch
- overrides/settings/datasets.yaml
- package_plugins/datasets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/httpx-*/*.patch
- overrides/patches/httpx/*.patch
- overrides/settings/httpx.yaml
- package_plugins/httpx.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kubernetes-*/*.patch
- overrides/patches/kubernetes/*.patch
- overrides/settings/kubernetes.yaml
- package_plugins/kubernetes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_lmeval-*/*.patch
- overrides/patches/llama_stack_provider_lmeval/*.patch
- overrides/settings/llama_stack_provider_lmeval.yaml
- package_plugins/llama_stack_provider_lmeval.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_trustyai_fms-*/*.patch
- overrides/patches/llama_stack_provider_trustyai_fms/*.patch
- overrides/settings/llama_stack_provider_trustyai_fms.yaml
- package_plugins/llama_stack_provider_trustyai_fms.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nltk-*/*.patch
- overrides/patches/nltk/*.patch
- overrides/settings/nltk.yaml
- package_plugins/nltk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_otlp_proto_http-*/*.patch
- overrides/patches/opentelemetry_exporter_otlp_proto_http/*.patch
- overrides/settings/opentelemetry_exporter_otlp_proto_http.yaml
- package_plugins/opentelemetry_exporter_otlp_proto_http.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_sdk-*/*.patch
- overrides/patches/opentelemetry_sdk/*.patch
- overrides/settings/opentelemetry_sdk.yaml
- package_plugins/opentelemetry_sdk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg2_binary-*/*.patch
- overrides/patches/psycopg2_binary/*.patch
- overrides/settings/psycopg2_binary.yaml
- package_plugins/psycopg2_binary.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymongo-*/*.patch
- overrides/patches/pymongo/*.patch
- overrides/settings/pymongo.yaml
- package_plugins/pymongo.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdf-*/*.patch
- overrides/patches/pypdf/*.patch
- overrides/settings/pypdf.yaml
- package_plugins/pypdf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/redis-*/*.patch
- overrides/patches/redis/*.patch
- overrides/settings/redis.yaml
- package_plugins/redis.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/requests-*/*.patch
- overrides/patches/requests/*.patch
- overrides/settings/requests.yaml
- package_plugins/requests.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scikit_learn-*/*.patch
- overrides/patches/scikit_learn/*.patch
- overrides/settings/scikit_learn.yaml
- package_plugins/scikit_learn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scipy-*/*.patch
- overrides/patches/scipy/*.patch
- overrides/settings/scipy.yaml
- package_plugins/scipy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sqlalchemy-*/*.patch
- overrides/patches/sqlalchemy/*.patch
- overrides/settings/sqlalchemy.yaml
- package_plugins/sqlalchemy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm-*/*.patch
- overrides/patches/tqdm/*.patch
- overrides/settings/tqdm.yaml
- package_plugins/tqdm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/transformers-*/*.patch
- overrides/patches/transformers/*.patch
- overrides/settings/transformers.yaml
- package_plugins/transformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn-*/*.patch
- overrides/patches/uvicorn/*.patch
- overrides/settings/uvicorn.yaml
- package_plugins/uvicorn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymilvus-*/*.patch
- overrides/patches/pymilvus/*.patch
- overrides/settings/pymilvus.yaml
- package_plugins/pymilvus.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/milvus_lite-*/*.patch
- overrides/patches/milvus_lite/*.patch
- overrides/settings/milvus_lite.yaml
- package_plugins/milvus_lite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rtree-*/*.patch
- overrides/patches/rtree/*.patch
- overrides/settings/rtree.yaml
- package_plugins/rtree.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/grpcio-*/*.patch
- overrides/patches/grpcio/*.patch
- overrides/settings/grpcio.yaml
- package_plugins/grpcio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cbor2-*/*.patch
- overrides/patches/cbor2/*.patch
- overrides/settings/cbor2.yaml
- package_plugins/cbor2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/outlines_core-*/*.patch
- overrides/patches/outlines_core/*.patch
- overrides/settings/outlines_core.yaml
- package_plugins/outlines_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/setproctitle-*/*.patch
- overrides/patches/setproctitle/*.patch
- overrides/settings/setproctitle.yaml
- package_plugins/setproctitle.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai_harmony-*/*.patch
- overrides/patches/openai_harmony/*.patch
- overrides/settings/openai_harmony.yaml
- package_plugins/openai_harmony.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uv-*/*.patch
- overrides/patches/uv/*.patch
- overrides/settings/uv.yaml
- package_plugins/uv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psutil-*/*.patch
- overrides/patches/psutil/*.patch
- overrides/settings/psutil.yaml
- package_plugins/psutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/polars-*/*.patch
- overrides/patches/polars/*.patch
- overrides/settings/polars.yaml
- package_plugins/polars.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docker-*/*.patch
- overrides/patches/docker/*.patch
- overrides/settings/docker.yaml
- package_plugins/docker.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn_worker-*/*.patch
- overrides/patches/uvicorn_worker/*.patch
- overrides/settings/uvicorn_worker.yaml
- package_plugins/uvicorn_worker.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-s390x
- job: linter
non-accelerated-cpu-ubi9-s390x-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
stage: build
needs:
- job: non-accelerated-cpu-ubi9-s390x-bootstrap-and-onboard
artifacts: true
non-accelerated-cpu-ubi9-s390x-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: s390x
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-s390x"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-s390x"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 1
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-s390x
stage: release
needs:
- job: non-accelerated-cpu-ubi9-s390x-build-wheels
artifacts: true
non-accelerated-cpu-ubi9-s390x-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-s390x"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".non-accelerated-cpu-ubi9-s390x-wheel-pipeline-release-variables-base-job"
stage: release
retry: 1
interruptible: true
rules:
- when: never
needs:
- job: non-accelerated-cpu-ubi9-s390x-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and s390x arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
build-image-cpu-ubi9-x86_64:
image: quay.io/buildah/stable:v1.40.1
retry: 0
stage: build-images
interruptible: true
tags:
- aipcc-small-x86_64
variables:
ARCH: x86_64
VARIANT: cpu-ubi9
before_script:
- dnf install -y which ncurses
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- |
case ${VARIANT} in
cuda*) CONTAINERFILE="Containerfile.cuda-ubi9" ;;
rocm*) CONTAINERFILE="Containerfile.rocm-ubi9" ;;
*) CONTAINERFILE="Containerfile.${VARIANT}" ;;
esac
- echo CONTAINERFILE=$CONTAINERFILE
- if [ -n "$CI_COMMIT_TAG" ]; then echo "Using tag for version"; IMAGE_TAG="$CI_COMMIT_TAG";
else echo "Generating version from MR IID"; IMAGE_TAG="${BUILDER_IMAGE_VERSION}";
fi
- echo IMAGE_TAG=$IMAGE_TAG
- IMAGE_BASE="${CI_REGISTRY}/${CI_PROJECT_PATH}/builder-${VARIANT}-${ARCH}"
- echo IMAGE_BASE=$IMAGE_BASE
- IMAGE="${IMAGE_BASE}:${IMAGE_TAG}"
- echo IMAGE=$IMAGE
script:
- mkdir -p ${SECURE_FILES_DOWNLOAD_PATH}
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${SECURE_FILES_DOWNLOAD_PATH}/.netrc
- |
buildah bud \
--secret=id=netrc,src=${SECURE_FILES_DOWNLOAD_PATH}/.netrc \
-f ${CONTAINERFILE} \
--layers --cache-from ${IMAGE_BASE} --cache-to ${IMAGE_BASE} \
-t ${IMAGE} \
--build-arg TOOL_SERVER_URL=${TOOL_SERVER_URL} \
--build-arg FROMAGER_NETWORK_ISOLATION=${FROMAGER_NETWORK_ISOLATION} \
--build-arg-file build-args/common.conf \
--build-arg-file build-args/${VARIANT}.conf \
--build-arg-file build-args/rhelai.conf \
--build-arg BUILDER_IMAGE_VERSION=${IMAGE_TAG} \
.
- buildah push ${IMAGE}
rules:
- if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- collections/*/$VARIANT/*
- collections/global-constraints.txt
- collections/global-requirements.txt
- build-args/*.conf
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- gitlab-ci/images.yml
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $VARIANT == "cpu-ubi9"
changes:
- pipeline-api/*
- collections/api-test/cpu-ubi9/*
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
needs:
- job: linter
optional: true
- job: changelog-linter
optional: true
- job: update-tool-server
optional: true
".api-test-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".api-test-cpu-ubi9-x86_64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".api-test-cpu-ubi9-x86_64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
extends:
- ".api-test-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/api-test/cpu-ubi9/requirements.txt
- collections/api-test/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/api-test/constraints-rules.txt
- collections/api-test/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "api-test"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
api-test-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS: false
PUBLISH_WHEEL_RELEASES: true
extends:
- ".api-test-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
- job: linter
test-api-test-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".api-test-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $ENABLE_TEST_JOBS == "false"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- collections/api-test/cpu-ubi9/requirements.txt
- collections/api-test/cpu-ubi9/constraints.txt
- collections/**/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
api-test-cpu-ubi9-x86_64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".api-test-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: build
needs:
- job: api-test-cpu-ubi9-x86_64-bootstrap-and-onboard
artifacts: true
api-test-cpu-ubi9-x86_64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: api-test
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/api-test-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".api-test-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=api-test" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: release
needs:
- job: api-test-cpu-ubi9-x86_64-build-wheels
artifacts: true
api-test-cpu-ubi9-x86_64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+api-test-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/api-test-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".api-test-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: api-test-cpu-ubi9-x86_64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and x86_64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
non-accelerated-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
test-non-accelerated-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyzmq-*/*.patch
- overrides/patches/pyzmq/*.patch
- overrides/settings/pyzmq.yaml
- package_plugins/pyzmq.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opencv_python_headless-*/*.patch
- overrides/patches/opencv_python_headless/*.patch
- overrides/settings/opencv_python_headless.yaml
- package_plugins/opencv_python_headless.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdfium2-*/*.patch
- overrides/patches/pypdfium2/*.patch
- overrides/settings/pypdfium2.yaml
- package_plugins/pypdfium2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tesserocr-*/*.patch
- overrides/patches/tesserocr/*.patch
- overrides/settings/tesserocr.yaml
- package_plugins/tesserocr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/certifi-*/*.patch
- overrides/patches/certifi/*.patch
- overrides/settings/certifi.yaml
- package_plugins/certifi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fastapi-*/*.patch
- overrides/patches/fastapi/*.patch
- overrides/settings/fastapi.yaml
- package_plugins/fastapi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/meson-*/*.patch
- overrides/patches/meson/*.patch
- overrides/settings/meson.yaml
- package_plugins/meson.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pydantic_core-*/*.patch
- overrides/patches/pydantic_core/*.patch
- overrides/settings/pydantic_core.yaml
- package_plugins/pydantic_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm_multiprocess-*/*.patch
- overrides/patches/tqdm_multiprocess/*.patch
- overrides/settings/tqdm_multiprocess.yaml
- package_plugins/tqdm_multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_pygments-*/*.patch
- overrides/patches/jupyterlab_pygments/*.patch
- overrides/settings/jupyterlab_pygments.yaml
- package_plugins/jupyterlab_pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sacrebleu-*/*.patch
- overrides/patches/sacrebleu/*.patch
- overrides/settings/sacrebleu.yaml
- package_plugins/sacrebleu.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/yarl-*/*.patch
- overrides/patches/yarl/*.patch
- overrides/settings/yarl.yaml
- package_plugins/yarl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/gast-*/*.patch
- overrides/patches/gast/*.patch
- overrides/settings/gast.yaml
- package_plugins/gast.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flit_core-*/*.patch
- overrides/patches/flit_core/*.patch
- overrides/settings/flit_core.yaml
- package_plugins/flit_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kfp-*/*.patch
- overrides/patches/kfp/*.patch
- overrides/settings/kfp.yaml
- package_plugins/kfp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multiprocess-*/*.patch
- overrides/patches/multiprocess/*.patch
- overrides/settings/multiprocess.yaml
- package_plugins/multiprocess.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_client-*/*.patch
- overrides/patches/qdrant_client/*.patch
- overrides/settings/qdrant_client.yaml
- package_plugins/qdrant_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/langchain_qdrant-*/*.patch
- overrides/patches/langchain_qdrant/*.patch
- overrides/settings/langchain_qdrant.yaml
- package_plugins/langchain_qdrant.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/qdrant_haystack-*/*.patch
- overrides/patches/qdrant_haystack/*.patch
- overrides/settings/qdrant_haystack.yaml
- package_plugins/qdrant_haystack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/haystack_ai-*/*.patch
- overrides/patches/haystack_ai/*.patch
- overrides/settings/haystack_ai.yaml
- package_plugins/haystack_ai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack-*/*.patch
- overrides/patches/llama_stack/*.patch
- overrides/settings/llama_stack.yaml
- package_plugins/llama_stack.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai-*/*.patch
- overrides/patches/openai/*.patch
- overrides/settings/openai.yaml
- package_plugins/openai.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_client-*/*.patch
- overrides/patches/llama_stack_client/*.patch
- overrides/settings/llama_stack_client.yaml
- package_plugins/llama_stack_client.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h5py-*/*.patch
- overrides/patches/h5py/*.patch
- overrides/settings/h5py.yaml
- package_plugins/h5py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/boto3-*/*.patch
- overrides/patches/boto3/*.patch
- overrides/settings/boto3.yaml
- package_plugins/boto3.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/submodlib_py-*/*.patch
- overrides/patches/submodlib_py/*.patch
- overrides/settings/submodlib_py.yaml
- package_plugins/submodlib_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ipython-*/*.patch
- overrides/patches/ipython/*.patch
- overrides/settings/ipython.yaml
- package_plugins/ipython.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/notebook-*/*.patch
- overrides/patches/notebook/*.patch
- overrides/settings/notebook.yaml
- package_plugins/notebook.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/matplotlib-*/*.patch
- overrides/patches/matplotlib/*.patch
- overrides/settings/matplotlib.yaml
- package_plugins/matplotlib.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mysql_connector_python-*/*.patch
- overrides/patches/mysql_connector_python/*.patch
- overrides/settings/mysql_connector_python.yaml
- package_plugins/mysql_connector_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyodbc-*/*.patch
- overrides/patches/pyodbc/*.patch
- overrides/settings/pyodbc.yaml
- package_plugins/pyodbc.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg-*/*.patch
- overrides/patches/psycopg/*.patch
- overrides/settings/psycopg.yaml
- package_plugins/psycopg.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soxr-*/*.patch
- overrides/patches/soxr/*.patch
- overrides/settings/soxr.yaml
- package_plugins/soxr.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/librosa-*/*.patch
- overrides/patches/librosa/*.patch
- overrides/settings/librosa.yaml
- package_plugins/librosa.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soundfile-*/*.patch
- overrides/patches/soundfile/*.patch
- overrides/settings/soundfile.yaml
- package_plugins/soundfile.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hatch_fancy_pypi_readme-*/*.patch
- overrides/patches/hatch_fancy_pypi_readme/*.patch
- overrides/settings/hatch_fancy_pypi_readme.yaml
- package_plugins/hatch_fancy_pypi_readme.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/soupsieve-*/*.patch
- overrides/patches/soupsieve/*.patch
- overrides/settings/soupsieve.yaml
- package_plugins/soupsieve.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ply-*/*.patch
- overrides/patches/ply/*.patch
- overrides/settings/ply.yaml
- package_plugins/ply.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sentencepiece-*/*.patch
- overrides/patches/sentencepiece/*.patch
- overrides/settings/sentencepiece.yaml
- package_plugins/sentencepiece.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/argon2_cffi-*/*.patch
- overrides/patches/argon2_cffi/*.patch
- overrides/settings/argon2_cffi.yaml
- package_plugins/argon2_cffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_transfer-*/*.patch
- overrides/patches/hf_transfer/*.patch
- overrides/settings/hf_transfer.yaml
- package_plugins/hf_transfer.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard-*/*.patch
- overrides/patches/tensorboard/*.patch
- overrides/settings/tensorboard.yaml
- package_plugins/tensorboard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tensorboard_data_server-*/*.patch
- overrides/patches/tensorboard_data_server/*.patch
- overrides/settings/tensorboard_data_server.yaml
- package_plugins/tensorboard_data_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/h11-*/*.patch
- overrides/patches/h11/*.patch
- overrides/settings/h11.yaml
- package_plugins/h11.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/zstandard-*/*.patch
- overrides/patches/zstandard/*.patch
- overrides/settings/zstandard.yaml
- package_plugins/zstandard.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mcp-*/*.patch
- overrides/patches/mcp/*.patch
- overrides/settings/mcp.yaml
- package_plugins/mcp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/MarkupSafe-*/*.patch
- overrides/patches/MarkupSafe/*.patch
- overrides/settings/MarkupSafe.yaml
- package_plugins/MarkupSafe.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohappyeyeballs-*/*.patch
- overrides/patches/aiohappyeyeballs/*.patch
- overrides/settings/aiohappyeyeballs.yaml
- package_plugins/aiohappyeyeballs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiohttp-*/*.patch
- overrides/patches/aiohttp/*.patch
- overrides/settings/aiohttp.yaml
- package_plugins/aiohttp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosignal-*/*.patch
- overrides/patches/aiosignal/*.patch
- overrides/settings/aiosignal.yaml
- package_plugins/aiosignal.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/attrs-*/*.patch
- overrides/patches/attrs/*.patch
- overrides/settings/attrs.yaml
- package_plugins/attrs.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/click-*/*.patch
- overrides/patches/click/*.patch
- overrides/settings/click.yaml
- package_plugins/click.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/filelock-*/*.patch
- overrides/patches/filelock/*.patch
- overrides/settings/filelock.yaml
- package_plugins/filelock.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fire-*/*.patch
- overrides/patches/fire/*.patch
- overrides/settings/fire.yaml
- package_plugins/fire.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/frozenlist-*/*.patch
- overrides/patches/frozenlist/*.patch
- overrides/settings/frozenlist.yaml
- package_plugins/frozenlist.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/fsspec-*/*.patch
- overrides/patches/fsspec/*.patch
- overrides/settings/fsspec.yaml
- package_plugins/fsspec.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jinja2-*/*.patch
- overrides/patches/jinja2/*.patch
- overrides/settings/jinja2.yaml
- package_plugins/jinja2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema-*/*.patch
- overrides/patches/jsonschema/*.patch
- overrides/settings/jsonschema.yaml
- package_plugins/jsonschema.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jsonschema_specifications-*/*.patch
- overrides/patches/jsonschema_specifications/*.patch
- overrides/settings/jsonschema_specifications.yaml
- package_plugins/jsonschema_specifications.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/markdown_it_py-*/*.patch
- overrides/patches/markdown_it_py/*.patch
- overrides/settings/markdown_it_py.yaml
- package_plugins/markdown_it_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mdurl-*/*.patch
- overrides/patches/mdurl/*.patch
- overrides/settings/mdurl.yaml
- package_plugins/mdurl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/multidict-*/*.patch
- overrides/patches/multidict/*.patch
- overrides/settings/multidict.yaml
- package_plugins/multidict.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numpy-*/*.patch
- overrides/patches/numpy/*.patch
- overrides/settings/numpy.yaml
- package_plugins/numpy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/packaging-*/*.patch
- overrides/patches/packaging/*.patch
- overrides/settings/packaging.yaml
- package_plugins/packaging.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pandas-*/*.patch
- overrides/patches/pandas/*.patch
- overrides/settings/pandas.yaml
- package_plugins/pandas.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pillow-*/*.patch
- overrides/patches/pillow/*.patch
- overrides/settings/pillow.yaml
- package_plugins/pillow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/prompt_toolkit-*/*.patch
- overrides/patches/prompt_toolkit/*.patch
- overrides/settings/prompt_toolkit.yaml
- package_plugins/prompt_toolkit.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/propcache-*/*.patch
- overrides/patches/propcache/*.patch
- overrides/settings/propcache.yaml
- package_plugins/propcache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyaml-*/*.patch
- overrides/patches/pyaml/*.patch
- overrides/settings/pyaml.yaml
- package_plugins/pyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyasn1-*/*.patch
- overrides/patches/pyasn1/*.patch
- overrides/settings/pyasn1.yaml
- package_plugins/pyasn1.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pygments-*/*.patch
- overrides/patches/pygments/*.patch
- overrides/settings/pygments.yaml
- package_plugins/pygments.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dateutil-*/*.patch
- overrides/patches/python_dateutil/*.patch
- overrides/settings/python_dateutil.yaml
- package_plugins/python_dateutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_dotenv-*/*.patch
- overrides/patches/python_dotenv/*.patch
- overrides/settings/python_dotenv.yaml
- package_plugins/python_dotenv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_jose-*/*.patch
- overrides/patches/python_jose/*.patch
- overrides/settings/python_jose.yaml
- package_plugins/python_jose.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/python_multipart-*/*.patch
- overrides/patches/python_multipart/*.patch
- overrides/settings/python_multipart.yaml
- package_plugins/python_multipart.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytz-*/*.patch
- overrides/patches/pytz/*.patch
- overrides/settings/pytz.yaml
- package_plugins/pytz.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyyaml-*/*.patch
- overrides/patches/pyyaml/*.patch
- overrides/settings/pyyaml.yaml
- package_plugins/pyyaml.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/referencing-*/*.patch
- overrides/patches/referencing/*.patch
- overrides/settings/referencing.yaml
- package_plugins/referencing.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/regex-*/*.patch
- overrides/patches/regex/*.patch
- overrides/settings/regex.yaml
- package_plugins/regex.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rich-*/*.patch
- overrides/patches/rich/*.patch
- overrides/settings/rich.yaml
- package_plugins/rich.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rpds_py-*/*.patch
- overrides/patches/rpds_py/*.patch
- overrides/settings/rpds_py.yaml
- package_plugins/rpds_py.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/six-*/*.patch
- overrides/patches/six/*.patch
- overrides/settings/six.yaml
- package_plugins/six.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/termcolor-*/*.patch
- overrides/patches/termcolor/*.patch
- overrides/settings/termcolor.yaml
- package_plugins/termcolor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tiktoken-*/*.patch
- overrides/patches/tiktoken/*.patch
- overrides/settings/tiktoken.yaml
- package_plugins/tiktoken.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tzdata-*/*.patch
- overrides/patches/tzdata/*.patch
- overrides/settings/tzdata.yaml
- package_plugins/tzdata.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wcwidth-*/*.patch
- overrides/patches/wcwidth/*.patch
- overrides/settings/wcwidth.yaml
- package_plugins/wcwidth.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/aiosqlite-*/*.patch
- overrides/patches/aiosqlite/*.patch
- overrides/settings/aiosqlite.yaml
- package_plugins/aiosqlite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/autoevals-*/*.patch
- overrides/patches/autoevals/*.patch
- overrides/settings/autoevals.yaml
- package_plugins/autoevals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/chardet-*/*.patch
- overrides/patches/chardet/*.patch
- overrides/settings/chardet.yaml
- package_plugins/chardet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/datasets-*/*.patch
- overrides/patches/datasets/*.patch
- overrides/settings/datasets.yaml
- package_plugins/datasets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/httpx-*/*.patch
- overrides/patches/httpx/*.patch
- overrides/settings/httpx.yaml
- package_plugins/httpx.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/kubernetes-*/*.patch
- overrides/patches/kubernetes/*.patch
- overrides/settings/kubernetes.yaml
- package_plugins/kubernetes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_lmeval-*/*.patch
- overrides/patches/llama_stack_provider_lmeval/*.patch
- overrides/settings/llama_stack_provider_lmeval.yaml
- package_plugins/llama_stack_provider_lmeval.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_stack_provider_trustyai_fms-*/*.patch
- overrides/patches/llama_stack_provider_trustyai_fms/*.patch
- overrides/settings/llama_stack_provider_trustyai_fms.yaml
- package_plugins/llama_stack_provider_trustyai_fms.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nltk-*/*.patch
- overrides/patches/nltk/*.patch
- overrides/settings/nltk.yaml
- package_plugins/nltk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_otlp_proto_http-*/*.patch
- overrides/patches/opentelemetry_exporter_otlp_proto_http/*.patch
- overrides/settings/opentelemetry_exporter_otlp_proto_http.yaml
- package_plugins/opentelemetry_exporter_otlp_proto_http.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_sdk-*/*.patch
- overrides/patches/opentelemetry_sdk/*.patch
- overrides/settings/opentelemetry_sdk.yaml
- package_plugins/opentelemetry_sdk.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psycopg2_binary-*/*.patch
- overrides/patches/psycopg2_binary/*.patch
- overrides/settings/psycopg2_binary.yaml
- package_plugins/psycopg2_binary.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymongo-*/*.patch
- overrides/patches/pymongo/*.patch
- overrides/settings/pymongo.yaml
- package_plugins/pymongo.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pypdf-*/*.patch
- overrides/patches/pypdf/*.patch
- overrides/settings/pypdf.yaml
- package_plugins/pypdf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/redis-*/*.patch
- overrides/patches/redis/*.patch
- overrides/settings/redis.yaml
- package_plugins/redis.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/requests-*/*.patch
- overrides/patches/requests/*.patch
- overrides/settings/requests.yaml
- package_plugins/requests.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scikit_learn-*/*.patch
- overrides/patches/scikit_learn/*.patch
- overrides/settings/scikit_learn.yaml
- package_plugins/scikit_learn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/scipy-*/*.patch
- overrides/patches/scipy/*.patch
- overrides/settings/scipy.yaml
- package_plugins/scipy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/sqlalchemy-*/*.patch
- overrides/patches/sqlalchemy/*.patch
- overrides/settings/sqlalchemy.yaml
- package_plugins/sqlalchemy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tqdm-*/*.patch
- overrides/patches/tqdm/*.patch
- overrides/settings/tqdm.yaml
- package_plugins/tqdm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/transformers-*/*.patch
- overrides/patches/transformers/*.patch
- overrides/settings/transformers.yaml
- package_plugins/transformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn-*/*.patch
- overrides/patches/uvicorn/*.patch
- overrides/settings/uvicorn.yaml
- package_plugins/uvicorn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pymilvus-*/*.patch
- overrides/patches/pymilvus/*.patch
- overrides/settings/pymilvus.yaml
- package_plugins/pymilvus.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/milvus_lite-*/*.patch
- overrides/patches/milvus_lite/*.patch
- overrides/settings/milvus_lite.yaml
- package_plugins/milvus_lite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/rtree-*/*.patch
- overrides/patches/rtree/*.patch
- overrides/settings/rtree.yaml
- package_plugins/rtree.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/grpcio-*/*.patch
- overrides/patches/grpcio/*.patch
- overrides/settings/grpcio.yaml
- package_plugins/grpcio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cbor2-*/*.patch
- overrides/patches/cbor2/*.patch
- overrides/settings/cbor2.yaml
- package_plugins/cbor2.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/outlines_core-*/*.patch
- overrides/patches/outlines_core/*.patch
- overrides/settings/outlines_core.yaml
- package_plugins/outlines_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/setproctitle-*/*.patch
- overrides/patches/setproctitle/*.patch
- overrides/settings/setproctitle.yaml
- package_plugins/setproctitle.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/openai_harmony-*/*.patch
- overrides/patches/openai_harmony/*.patch
- overrides/settings/openai_harmony.yaml
- package_plugins/openai_harmony.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uv-*/*.patch
- overrides/patches/uv/*.patch
- overrides/settings/uv.yaml
- package_plugins/uv.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/psutil-*/*.patch
- overrides/patches/psutil/*.patch
- overrides/settings/psutil.yaml
- package_plugins/psutil.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/polars-*/*.patch
- overrides/patches/polars/*.patch
- overrides/settings/polars.yaml
- package_plugins/polars.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docker-*/*.patch
- overrides/patches/docker/*.patch
- overrides/settings/docker.yaml
- package_plugins/docker.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/uvicorn_worker-*/*.patch
- overrides/patches/uvicorn_worker/*.patch
- overrides/settings/uvicorn_worker.yaml
- package_plugins/uvicorn_worker.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
- job: linter
non-accelerated-cpu-ubi9-x86_64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: build
needs:
- job: non-accelerated-cpu-ubi9-x86_64-bootstrap-and-onboard
artifacts: true
non-accelerated-cpu-ubi9-x86_64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: non-accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/non-accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/non-accelerated/cpu-ubi9/requirements.txt
- collections/non-accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/non-accelerated/constraints-rules.txt
- collections/non-accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "non-accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=non-accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: release
needs:
- job: non-accelerated-cpu-ubi9-x86_64-build-wheels
artifacts: true
non-accelerated-cpu-ubi9-x86_64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+non-accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/non-accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".non-accelerated-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: non-accelerated-cpu-ubi9-x86_64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and x86_64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".accelerated-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".accelerated-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/accelerated/cpu-ubi9/requirements.txt
- collections/accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/accelerated/constraints-rules.txt
- collections/accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
accelerated-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/accelerated/cpu-ubi9/requirements.txt
- collections/accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/accelerated/constraints-rules.txt
- collections/accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
test-accelerated-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/hf_xet-*/*.patch
- overrides/patches/hf_xet/*.patch
- overrides/settings/hf_xet.yaml
- package_plugins/hf_xet.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_openmp-*/*.patch
- overrides/patches/intel_openmp/*.patch
- overrides/settings/intel_openmp.yaml
- package_plugins/intel_openmp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_cmplr_lib_ur-*/*.patch
- overrides/patches/intel_cmplr_lib_ur/*.patch
- overrides/settings/intel_cmplr_lib_ur.yaml
- package_plugins/intel_cmplr_lib_ur.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_extension_for_pytorch-*/*.patch
- overrides/patches/intel_extension_for_pytorch/*.patch
- overrides/settings/intel_extension_for_pytorch.yaml
- package_plugins/intel_extension_for_pytorch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch_tb_profiler-*/*.patch
- overrides/patches/torch_tb_profiler/*.patch
- overrides/settings/torch_tb_profiler.yaml
- package_plugins/torch_tb_profiler.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/huggingface_hub-*/*.patch
- overrides/patches/huggingface_hub/*.patch
- overrides/settings/huggingface_hub.yaml
- package_plugins/huggingface_hub.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling-*/*.patch
- overrides/patches/docling/*.patch
- overrides/settings/docling.yaml
- package_plugins/docling.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_core-*/*.patch
- overrides/patches/docling_core/*.patch
- overrides/settings/docling_core.yaml
- package_plugins/docling_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_parse-*/*.patch
- overrides/patches/docling_parse/*.patch
- overrides/settings/docling_parse.yaml
- package_plugins/docling_parse.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/docling_ibm_models-*/*.patch
- overrides/patches/docling_ibm_models/*.patch
- overrides/settings/docling_ibm_models.yaml
- package_plugins/docling_ibm_models.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/trl-*/*.patch
- overrides/patches/trl/*.patch
- overrides/settings/trl.yaml
- package_plugins/trl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llmcompressor-*/*.patch
- overrides/patches/llmcompressor/*.patch
- overrides/settings/llmcompressor.yaml
- package_plugins/llmcompressor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/liger_kernel-*/*.patch
- overrides/patches/liger_kernel/*.patch
- overrides/settings/liger_kernel.yaml
- package_plugins/liger_kernel.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/lm_eval-*/*.patch
- overrides/patches/lm_eval/*.patch
- overrides/settings/lm_eval.yaml
- package_plugins/lm_eval.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab-*/*.patch
- overrides/patches/jupyterlab/*.patch
- overrides/settings/jupyterlab.yaml
- package_plugins/jupyterlab.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server-*/*.patch
- overrides/patches/jupyter_server/*.patch
- overrides/settings/jupyter_server.yaml
- package_plugins/jupyter_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_mathjax-*/*.patch
- overrides/patches/jupyter_server_mathjax/*.patch
- overrides/settings/jupyter_server_mathjax.yaml
- package_plugins/jupyter_server_mathjax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_proxy-*/*.patch
- overrides/patches/jupyter_server_proxy/*.patch
- overrides/settings/jupyter_server_proxy.yaml
- package_plugins/jupyter_server_proxy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_terminals-*/*.patch
- overrides/patches/jupyter_server_terminals/*.patch
- overrides/settings/jupyter_server_terminals.yaml
- package_plugins/jupyter_server_terminals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_git-*/*.patch
- overrides/patches/jupyterlab_git/*.patch
- overrides/settings/jupyterlab_git.yaml
- package_plugins/jupyterlab_git.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbdime-*/*.patch
- overrides/patches/nbdime/*.patch
- overrides/settings/nbdime.yaml
- package_plugins/nbdime.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbgitpuller-*/*.patch
- overrides/patches/nbgitpuller/*.patch
- overrides/settings/nbgitpuller.yaml
- package_plugins/nbgitpuller.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/litellm-*/*.patch
- overrides/patches/litellm/*.patch
- overrides/settings/litellm.yaml
- package_plugins/litellm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llvmlite-*/*.patch
- overrides/patches/llvmlite/*.patch
- overrides/settings/llvmlite.yaml
- package_plugins/llvmlite.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/faiss_cpu-*/*.patch
- overrides/patches/faiss_cpu/*.patch
- overrides/settings/faiss_cpu.yaml
- package_plugins/faiss_cpu.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
- job: linter
accelerated-cpu-ubi9-x86_64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/accelerated/cpu-ubi9/requirements.txt
- collections/accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/accelerated/constraints-rules.txt
- collections/accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: build
needs:
- job: accelerated-cpu-ubi9-x86_64-bootstrap-and-onboard
artifacts: true
accelerated-cpu-ubi9-x86_64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: accelerated
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/accelerated-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".accelerated-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/accelerated/cpu-ubi9/requirements.txt
- collections/accelerated/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/accelerated/constraints-rules.txt
- collections/accelerated/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "accelerated"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=accelerated" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: release
needs:
- job: accelerated-cpu-ubi9-x86_64-build-wheels
artifacts: true
accelerated-cpu-ubi9-x86_64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+accelerated-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/accelerated-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".accelerated-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: accelerated-cpu-ubi9-x86_64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and x86_64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
torch-2.8.0-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
test-torch-2.8.0-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_openmp-*/*.patch
- overrides/patches/intel_openmp/*.patch
- overrides/settings/intel_openmp.yaml
- package_plugins/intel_openmp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_cmplr_lib_ur-*/*.patch
- overrides/patches/intel_cmplr_lib_ur/*.patch
- overrides/settings/intel_cmplr_lib_ur.yaml
- package_plugins/intel_cmplr_lib_ur.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/intel_extension_for_pytorch-*/*.patch
- overrides/patches/intel_extension_for_pytorch/*.patch
- overrides/settings/intel_extension_for_pytorch.yaml
- package_plugins/intel_extension_for_pytorch.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
- job: linter
torch-2.8.0-cpu-ubi9-x86_64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: build
needs:
- job: torch-2.8.0-cpu-ubi9-x86_64-bootstrap-and-onboard
artifacts: true
torch-2.8.0-cpu-ubi9-x86_64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: release
needs:
- job: torch-2.8.0-cpu-ubi9-x86_64-build-wheels
artifacts: true
torch-2.8.0-cpu-ubi9-x86_64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".torch-2.8.0-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: $PUBLISH_WHEEL_RELEASES == "false"
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cpu-ubi9/requirements.txt
- collections/torch-2.8.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
needs:
- job: torch-2.8.0-cpu-ubi9-x86_64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and x86_64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cpu-ubi9/requirements.txt
- collections/torch-2.9.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
torch-2.9.0-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cpu-ubi9/requirements.txt
- collections/torch-2.9.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
test-torch-2.9.0-cpu-ubi9-x86_64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: bootstrap
needs:
- job: build-image-cpu-ubi9-x86_64
- job: linter
torch-2.9.0-cpu-ubi9-x86_64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cpu-ubi9/requirements.txt
- collections/torch-2.9.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: build
needs:
- job: torch-2.9.0-cpu-ubi9-x86_64-bootstrap-and-onboard
artifacts: true
torch-2.9.0-cpu-ubi9-x86_64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cpu-ubi9
ARCH: x86_64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cpu-ubi9-x86_64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cpu-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cpu-ubi9-x86_64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cpu-ubi9/requirements.txt
- collections/torch-2.9.0/cpu-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cpu-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cpu-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-x86_64
stage: release
needs:
- job: torch-2.9.0-cpu-ubi9-x86_64-build-wheels
artifacts: true
torch-2.9.0-cpu-ubi9-x86_64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cpu-ubi9-x86_64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".torch-2.9.0-cpu-ubi9-x86_64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: torch-2.9.0-cpu-ubi9-x86_64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and x86_64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
build-image-cuda12.8-ubi9-aarch64:
image: quay.io/buildah/stable:v1.40.1
retry: 0
stage: build-images
interruptible: true
tags:
- aipcc-small-aarch64
variables:
ARCH: aarch64
VARIANT: cuda12.8-ubi9
before_script:
- dnf install -y which ncurses
- buildah login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- |
case ${VARIANT} in
cuda*) CONTAINERFILE="Containerfile.cuda-ubi9" ;;
rocm*) CONTAINERFILE="Containerfile.rocm-ubi9" ;;
*) CONTAINERFILE="Containerfile.${VARIANT}" ;;
esac
- echo CONTAINERFILE=$CONTAINERFILE
- if [ -n "$CI_COMMIT_TAG" ]; then echo "Using tag for version"; IMAGE_TAG="$CI_COMMIT_TAG";
else echo "Generating version from MR IID"; IMAGE_TAG="${BUILDER_IMAGE_VERSION}";
fi
- echo IMAGE_TAG=$IMAGE_TAG
- IMAGE_BASE="${CI_REGISTRY}/${CI_PROJECT_PATH}/builder-${VARIANT}-${ARCH}"
- echo IMAGE_BASE=$IMAGE_BASE
- IMAGE="${IMAGE_BASE}:${IMAGE_TAG}"
- echo IMAGE=$IMAGE
script:
- mkdir -p ${SECURE_FILES_DOWNLOAD_PATH}
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${SECURE_FILES_DOWNLOAD_PATH}/.netrc
- |
buildah bud \
--secret=id=netrc,src=${SECURE_FILES_DOWNLOAD_PATH}/.netrc \
-f ${CONTAINERFILE} \
--layers --cache-from ${IMAGE_BASE} --cache-to ${IMAGE_BASE} \
-t ${IMAGE} \
--build-arg TOOL_SERVER_URL=${TOOL_SERVER_URL} \
--build-arg FROMAGER_NETWORK_ISOLATION=${FROMAGER_NETWORK_ISOLATION} \
--build-arg-file build-args/common.conf \
--build-arg-file build-args/${VARIANT}.conf \
--build-arg-file build-args/rhelai.conf \
--build-arg BUILDER_IMAGE_VERSION=${IMAGE_TAG} \
.
- buildah push ${IMAGE}
rules:
- if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- collections/*/$VARIANT/*
- collections/global-constraints.txt
- collections/global-requirements.txt
- build-args/*.conf
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- gitlab-ci/images.yml
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $VARIANT == "cpu-ubi9"
changes:
- pipeline-api/*
- collections/api-test/cpu-ubi9/*
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- pipeline-api/*
- collections/global-constraints.txt
- collections/api-test/cpu-ubi9/*
- package_plugins/cli/onboarder.py
- package_plugins/cli/get_project_id.py
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
needs:
- job: linter
optional: true
- job: changelog-linter
optional: true
- job: update-tool-server
optional: true
".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cuda12.8-ubi9/requirements.txt
- collections/torch-2.8.0/cuda12.8-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cuda12.8-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
torch-2.8.0-cuda12.8-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cuda12.8-ubi9/requirements.txt
- collections/torch-2.8.0/cuda12.8-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cuda12.8-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cuda12.8-ubi9-aarch64
test-torch-2.8.0-cuda12.8-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xgrammar-*/*.patch
- overrides/patches/xgrammar/*.patch
- overrides/settings/xgrammar.yaml
- package_plugins/xgrammar.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llama_cpp_python-*/*.patch
- overrides/patches/llama_cpp_python/*.patch
- overrides/settings/llama_cpp_python.yaml
- package_plugins/llama_cpp_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_python-*/*.patch
- overrides/patches/flashinfer_python/*.patch
- overrides/settings/flashinfer_python.yaml
- package_plugins/flashinfer_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_cubin-*/*.patch
- overrides/patches/flashinfer_cubin/*.patch
- overrides/settings/flashinfer_cubin.yaml
- package_plugins/flashinfer_cubin.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_jit_cache-*/*.patch
- overrides/patches/flashinfer_jit_cache/*.patch
- overrides/settings/flashinfer_jit_cache.yaml
- package_plugins/flashinfer_jit_cache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numba-*/*.patch
- overrides/patches/numba/*.patch
- overrides/settings/numba.yaml
- package_plugins/numba.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_bindings-*/*.patch
- overrides/patches/cuda_bindings/*.patch
- overrides/settings/cuda_bindings.yaml
- package_plugins/cuda_bindings.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_core-*/*.patch
- overrides/patches/cuda_core/*.patch
- overrides/settings/cuda_core.yaml
- package_plugins/cuda_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_python-*/*.patch
- overrides/patches/cuda_python/*.patch
- overrides/settings/cuda_python.yaml
- package_plugins/cuda_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cudnn_frontend-*/*.patch
- overrides/patches/nvidia_cudnn_frontend/*.patch
- overrides/settings/nvidia_cudnn_frontend.yaml
- package_plugins/nvidia_cudnn_frontend.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cutlass_dsl-*/*.patch
- overrides/patches/nvidia_cutlass_dsl/*.patch
- overrides/settings/nvidia_cutlass_dsl.yaml
- package_plugins/nvidia_cutlass_dsl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/llmcompressor-*/*.patch
- overrides/patches/llmcompressor/*.patch
- overrides/settings/llmcompressor.yaml
- package_plugins/llmcompressor.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab-*/*.patch
- overrides/patches/jupyterlab/*.patch
- overrides/settings/jupyterlab.yaml
- package_plugins/jupyterlab.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server-*/*.patch
- overrides/patches/jupyter_server/*.patch
- overrides/settings/jupyter_server.yaml
- package_plugins/jupyter_server.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_mathjax-*/*.patch
- overrides/patches/jupyter_server_mathjax/*.patch
- overrides/settings/jupyter_server_mathjax.yaml
- package_plugins/jupyter_server_mathjax.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_proxy-*/*.patch
- overrides/patches/jupyter_server_proxy/*.patch
- overrides/settings/jupyter_server_proxy.yaml
- package_plugins/jupyter_server_proxy.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_server_terminals-*/*.patch
- overrides/patches/jupyter_server_terminals/*.patch
- overrides/settings/jupyter_server_terminals.yaml
- package_plugins/jupyter_server_terminals.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_git-*/*.patch
- overrides/patches/jupyterlab_git/*.patch
- overrides/settings/jupyterlab_git.yaml
- package_plugins/jupyterlab_git.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbdime-*/*.patch
- overrides/patches/nbdime/*.patch
- overrides/settings/nbdime.yaml
- package_plugins/nbdime.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nbgitpuller-*/*.patch
- overrides/patches/nbgitpuller/*.patch
- overrides/settings/nbgitpuller.yaml
- package_plugins/nbgitpuller.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_bokeh-*/*.patch
- overrides/patches/jupyter_bokeh/*.patch
- overrides/settings/jupyter_bokeh.yaml
- package_plugins/jupyter_bokeh.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_lsp-*/*.patch
- overrides/patches/jupyterlab_lsp/*.patch
- overrides/settings/jupyterlab_lsp.yaml
- package_plugins/jupyterlab_lsp.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyterlab_widgets-*/*.patch
- overrides/patches/jupyterlab_widgets/*.patch
- overrides/settings/jupyterlab_widgets.yaml
- package_plugins/jupyterlab_widgets.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/jupyter_resource_usage-*/*.patch
- overrides/patches/jupyter_resource_usage/*.patch
- overrides/settings/jupyter_resource_usage.yaml
- package_plugins/jupyter_resource_usage.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pplx_kernels-*/*.patch
- overrides/patches/pplx_kernels/*.patch
- overrides/settings/pplx_kernels.yaml
- package_plugins/pplx_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_ep-*/*.patch
- overrides/patches/deep_ep/*.patch
- overrides/settings/deep_ep.yaml
- package_plugins/deep_ep.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_gemm-*/*.patch
- overrides/patches/deep_gemm/*.patch
- overrides/settings/deep_gemm.yaml
- package_plugins/deep_gemm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/depyf-*/*.patch
- overrides/patches/depyf/*.patch
- overrides/settings/depyf.yaml
- package_plugins/depyf.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cmake-*/*.patch
- overrides/patches/cmake/*.patch
- overrides/settings/cmake.yaml
- package_plugins/cmake.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cupy_cuda12x-*/*.patch
- overrides/patches/cupy_cuda12x/*.patch
- overrides/settings/cupy_cuda12x.yaml
- package_plugins/cupy_cuda12x.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nixl-*/*.patch
- overrides/patches/nixl/*.patch
- overrides/settings/nixl.yaml
- package_plugins/nixl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/timm-*/*.patch
- overrides/patches/timm/*.patch
- overrides/settings/timm.yaml
- package_plugins/timm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pytest_asyncio-*/*.patch
- overrides/patches/pytest_asyncio/*.patch
- overrides/settings/pytest_asyncio.yaml
- package_plugins/pytest_asyncio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/causal_conv1d-*/*.patch
- overrides/patches/causal_conv1d/*.patch
- overrides/settings/causal_conv1d.yaml
- package_plugins/causal_conv1d.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mamba_ssm-*/*.patch
- overrides/patches/mamba_ssm/*.patch
- overrides/settings/mamba_ssm.yaml
- package_plugins/mamba_ssm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/opentelemetry_exporter_prometheus-*/*.patch
- overrides/patches/opentelemetry_exporter_prometheus/*.patch
- overrides/settings/opentelemetry_exporter_prometheus.yaml
- package_plugins/opentelemetry_exporter_prometheus.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cuda12.8-ubi9-aarch64
- job: linter
torch-2.8.0-cuda12.8-ubi9-aarch64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cuda12.8-ubi9/requirements.txt
- collections/torch-2.8.0/cuda12.8-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cuda12.8-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: build
needs:
- job: torch-2.8.0-cuda12.8-ubi9-aarch64-bootstrap-and-onboard
artifacts: true
torch-2.8.0-cuda12.8-ubi9-aarch64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.8.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.8.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.8.0/cuda12.8-ubi9/requirements.txt
- collections/torch-2.8.0/cuda12.8-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.8.0/constraints-rules.txt
- collections/torch-2.8.0/cuda12.8-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.8.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.8.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: release
needs:
- job: torch-2.8.0-cuda12.8-ubi9-aarch64-build-wheels
artifacts: true
torch-2.8.0-cuda12.8-ubi9-aarch64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.8.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.8.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".torch-2.8.0-cuda12.8-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: torch-2.8.0-cuda12.8-ubi9-aarch64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and aarch64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cuda12.8-ubi9/requirements.txt
- collections/torch-2.9.0/cuda12.8-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cuda12.8-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
torch-2.9.0-cuda12.8-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cuda12.8-ubi9/requirements.txt
- collections/torch-2.9.0/cuda12.8-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cuda12.8-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cuda12.8-ubi9-aarch64
test-torch-2.9.0-cuda12.8-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/apache_tvm_ffi-*/*.patch
- overrides/patches/apache_tvm_ffi/*.patch
- overrides/settings/apache_tvm_ffi.yaml
- package_plugins/apache_tvm_ffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cmake-*/*.patch
- overrides/patches/cmake/*.patch
- overrides/settings/cmake.yaml
- package_plugins/cmake.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/causal_conv1d-*/*.patch
- overrides/patches/causal_conv1d/*.patch
- overrides/settings/causal_conv1d.yaml
- package_plugins/causal_conv1d.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cupy_cuda12x-*/*.patch
- overrides/patches/cupy_cuda12x/*.patch
- overrides/settings/cupy_cuda12x.yaml
- package_plugins/cupy_cuda12x.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_bindings-*/*.patch
- overrides/patches/cuda_bindings/*.patch
- overrides/settings/cuda_bindings.yaml
- package_plugins/cuda_bindings.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_core-*/*.patch
- overrides/patches/cuda_core/*.patch
- overrides/settings/cuda_core.yaml
- package_plugins/cuda_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_python-*/*.patch
- overrides/patches/cuda_python/*.patch
- overrides/settings/cuda_python.yaml
- package_plugins/cuda_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_ep-*/*.patch
- overrides/patches/deep_ep/*.patch
- overrides/settings/deep_ep.yaml
- package_plugins/deep_ep.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_gemm-*/*.patch
- overrides/patches/deep_gemm/*.patch
- overrides/settings/deep_gemm.yaml
- package_plugins/deep_gemm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_cubin-*/*.patch
- overrides/patches/flashinfer_cubin/*.patch
- overrides/settings/flashinfer_cubin.yaml
- package_plugins/flashinfer_cubin.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_jit_cache-*/*.patch
- overrides/patches/flashinfer_jit_cache/*.patch
- overrides/settings/flashinfer_jit_cache.yaml
- package_plugins/flashinfer_jit_cache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_python-*/*.patch
- overrides/patches/flashinfer_python/*.patch
- overrides/settings/flashinfer_python.yaml
- package_plugins/flashinfer_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mamba_ssm-*/*.patch
- overrides/patches/mamba_ssm/*.patch
- overrides/settings/mamba_ssm.yaml
- package_plugins/mamba_ssm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nixl-*/*.patch
- overrides/patches/nixl/*.patch
- overrides/settings/nixl.yaml
- package_plugins/nixl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numba-*/*.patch
- overrides/patches/numba/*.patch
- overrides/settings/numba.yaml
- package_plugins/numba.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cudnn_frontend-*/*.patch
- overrides/patches/nvidia_cudnn_frontend/*.patch
- overrides/settings/nvidia_cudnn_frontend.yaml
- package_plugins/nvidia_cudnn_frontend.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cutlass_dsl-*/*.patch
- overrides/patches/nvidia_cutlass_dsl/*.patch
- overrides/settings/nvidia_cutlass_dsl.yaml
- package_plugins/nvidia_cutlass_dsl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pplx_kernels-*/*.patch
- overrides/patches/pplx_kernels/*.patch
- overrides/settings/pplx_kernels.yaml
- package_plugins/pplx_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xgrammar-*/*.patch
- overrides/patches/xgrammar/*.patch
- overrides/settings/xgrammar.yaml
- package_plugins/xgrammar.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cuda12.8-ubi9-aarch64
- job: linter
torch-2.9.0-cuda12.8-ubi9-aarch64-build-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'true'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/build_wheels.sh"
extends:
- ".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cuda12.8-ubi9/requirements.txt
- collections/torch-2.9.0/cuda12.8-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cuda12.8-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: build
needs:
- job: torch-2.9.0-cuda12.8-ubi9-aarch64-bootstrap-and-onboard
artifacts: true
torch-2.9.0-cuda12.8-ubi9-aarch64-release-tarball:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cuda12.8-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.8-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.8-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cuda12.8-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/make_release_tarball.sh"
extends:
- ".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cuda12.8-ubi9/requirements.txt
- collections/torch-2.9.0/cuda12.8-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cuda12.8-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.8-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: release
needs:
- job: torch-2.9.0-cuda12.8-ubi9-aarch64-build-wheels
artifacts: true
torch-2.9.0-cuda12.8-ubi9-aarch64-publish-wheels:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.8-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends:
- ".torch-2.9.0-cuda12.8-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
stage: release
retry: 0
interruptible: true
rules:
- when: never
needs:
- job: torch-2.9.0-cuda12.8-ubi9-aarch64-release-tarball
artifacts: true
script:
- echo "running publish job $CI_JOB_NAME for $RELEASE_VERSION and aarch64 arch"
release:
tag_name: "$RELEASE_VERSION"
description: "/mnt/work-dir/build-sequence-summary.md"
ref: "$CI_COMMIT_SHA"
assets:
links:
- name: "$RELEASE_TARBALL"
url: "$PUBLISH_URL/$RELEASE_TARBALL"
tags:
- aipcc
".torch-2.9.0-cuda12.9-ubi9-aarch64-wheel-pipeline-release-variables-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.9-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
".torch-2.9.0-cuda12.9-ubi9-aarch64-wheel-pipeline-api-base-rules":
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
".torch-2.9.0-cuda12.9-ubi9-aarch64-wheel-pipeline-api-base-job":
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.9-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cuda12.9-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.9-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.9-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cuda12.9-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
extends:
- ".torch-2.9.0-cuda12.9-ubi9-aarch64-wheel-pipeline-release-variables-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cuda12.9-ubi9/requirements.txt
- collections/torch-2.9.0/cuda12.9-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cuda12.9-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.9-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.9-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
torch-2.9.0-cuda12.9-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.9-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cuda12.9-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.9-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.9-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cuda12.9-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'true'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: sdist-only
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
extends:
- ".torch-2.9.0-cuda12.9-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- if: "$CI_COMMIT_TAG"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_PROTECTED == "true"
changes:
- collections/torch-2.9.0/cuda12.9-ubi9/requirements.txt
- collections/torch-2.9.0/cuda12.9-ubi9/constraints.txt
- collections/constraints-rules.txt
- collections/torch-2.9.0/constraints-rules.txt
- collections/torch-2.9.0/cuda12.9-ubi9/constraints-rules.txt
- builder-image-version.yml
- product-version.yml
- if: $CI_PIPELINE_SOURCE == "push" && "true" == "true" && $CI_COMMIT_REF_PROTECTED
== "true"
- if: $CI_PIPELINE_SOURCE == "schedule" && "false" == "true"
- if: ($CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api") && $BUILD_COLLECTION
!= "" && $BUILD_COLLECTION != "torch-2.9.0"
when: never
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.9-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.9-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
tags:
- aipcc-large-aarch64
stage: bootstrap
needs:
- job: build-image-cuda12.9-ubi9-aarch64
test-torch-2.9.0-cuda12.9-ubi9-aarch64-bootstrap-and-onboard:
variables:
PUBLISH_AUTH_HEADER: 'PRIVATE-TOKEN: ${BOT_PAT}'
RELEASE_TARBALL: wheels-${RELEASE_VERSION}.tar.gz
RELEASE_VERSION_SUFFIX: "+torch-2.9.0-cuda12.9-ubi9-aarch64"
RELEASE_VERSION: "${PRODUCT_VERSION}.${CI_PIPELINE_IID}${RELEASE_VERSION_SUFFIX}"
GITLAB_PACKAGE_URL: https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/generic/torch-2.9.0-wheels
PUBLISH_URL: "${GITLAB_PACKAGE_URL}/${RELEASE_VERSION}"
FF_SCRIPT_SECTIONS: 'true'
COLLECTION: torch-2.9.0
VARIANT: cuda12.9-ubi9
ARCH: aarch64
IMAGE_BASE: "${CI_REGISTRY}/redhat/rhel-ai/wheels/builder/builder-cuda12.9-ubi9-aarch64"
IMAGE: "${IMAGE_BASE}:${BUILDER_IMAGE_VERSION}"
CONTAINERFILE: Containerfile.cuda12.9-ubi9
TOOL_SERVER_URL: https://gitlab.com/api/v4/projects/61507476/packages/pypi/simple/
OUTDIR: "/mnt"
JOB_OUTPUT_DIR: "/builds/$CI_PROJECT_PATH/mnt"
WHEEL_SERVER_PROJECT_PATH: "${WHEEL_SERVER_PROJECT_PREFIX}/torch-2.9.0-${PRODUCT_VERSION}/cuda12.9-ubi9-aarch64"
SDIST_SERVER_PROJECT_PATH: redhat/rhel-ai/wheels/prefetch
RUN_CLEAN_AND_UPLOAD: 'false'
BOOTSTRAP_RUN_ONBOARD: 'false'
BUILD_ON_ALL_PUSHES: true
BOOTSTRAP_MODE: full-parallel
BUILD_MODE: serial
API_SCRIPT: "/mirror-builder/pipeline-api/bootstrap_and_onboard.sh"
ENABLE_TEST_JOBS: true
extends:
- ".torch-2.9.0-cuda12.9-ubi9-aarch64-wheel-pipeline-api-base-job"
image: registry.gitlab.com/redhat/rhel-ai/wheels/builder/podman-stable:v5.5.0
retry: 0
timeout: 12h
services:
interruptible: true
rules:
- - if: $CI_PROJECT_ROOT_NAMESPACE != "redhat"
when: never
- if: '"true" == "false"'
when: never
- - if: $CI_PROJECT_NAMESPACE != "redhat/rhel-ai/wheels"
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- container-install/**
- repos/**
- overrides/**/*
- package_plugins/**
- requirements.txt
- collections/global-constraints.txt
- collections/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/constraints-rules.txt
- collections/$[[ inputs.COLLECTION ]]/$[[ inputs.VARIANT ]]/constraints-rules.txt
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- Containerfile.${VARIANT}
- build-args/${VARIANT}.conf
- collections/${COLLECTION}/${VARIANT}/*
- if: "$CI_MERGE_REQUEST_LABELS =~ /force-test/"
- - if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/apache_tvm_ffi-*/*.patch
- overrides/patches/apache_tvm_ffi/*.patch
- overrides/settings/apache_tvm_ffi.yaml
- package_plugins/apache_tvm_ffi.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/bitsandbytes-*/*.patch
- overrides/patches/bitsandbytes/*.patch
- overrides/settings/bitsandbytes.yaml
- package_plugins/bitsandbytes.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cmake-*/*.patch
- overrides/patches/cmake/*.patch
- overrides/settings/cmake.yaml
- package_plugins/cmake.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/causal_conv1d-*/*.patch
- overrides/patches/causal_conv1d/*.patch
- overrides/settings/causal_conv1d.yaml
- package_plugins/causal_conv1d.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cupy_cuda12x-*/*.patch
- overrides/patches/cupy_cuda12x/*.patch
- overrides/settings/cupy_cuda12x.yaml
- package_plugins/cupy_cuda12x.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_bindings-*/*.patch
- overrides/patches/cuda_bindings/*.patch
- overrides/settings/cuda_bindings.yaml
- package_plugins/cuda_bindings.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_core-*/*.patch
- overrides/patches/cuda_core/*.patch
- overrides/settings/cuda_core.yaml
- package_plugins/cuda_core.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/cuda_python-*/*.patch
- overrides/patches/cuda_python/*.patch
- overrides/settings/cuda_python.yaml
- package_plugins/cuda_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_ep-*/*.patch
- overrides/patches/deep_ep/*.patch
- overrides/settings/deep_ep.yaml
- package_plugins/deep_ep.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/deep_gemm-*/*.patch
- overrides/patches/deep_gemm/*.patch
- overrides/settings/deep_gemm.yaml
- package_plugins/deep_gemm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_attn-*/*.patch
- overrides/patches/flash_attn/*.patch
- overrides/settings/flash_attn.yaml
- package_plugins/flash_attn.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flash_linear_attention-*/*.patch
- overrides/patches/flash_linear_attention/*.patch
- overrides/settings/flash_linear_attention.yaml
- package_plugins/flash_linear_attention.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_cubin-*/*.patch
- overrides/patches/flashinfer_cubin/*.patch
- overrides/settings/flashinfer_cubin.yaml
- package_plugins/flashinfer_cubin.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_jit_cache-*/*.patch
- overrides/patches/flashinfer_jit_cache/*.patch
- overrides/settings/flashinfer_jit_cache.yaml
- package_plugins/flashinfer_jit_cache.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/flashinfer_python-*/*.patch
- overrides/patches/flashinfer_python/*.patch
- overrides/settings/flashinfer_python.yaml
- package_plugins/flashinfer_python.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/mamba_ssm-*/*.patch
- overrides/patches/mamba_ssm/*.patch
- overrides/settings/mamba_ssm.yaml
- package_plugins/mamba_ssm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ninja-*/*.patch
- overrides/patches/ninja/*.patch
- overrides/settings/ninja.yaml
- package_plugins/ninja.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nixl-*/*.patch
- overrides/patches/nixl/*.patch
- overrides/settings/nixl.yaml
- package_plugins/nixl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/numba-*/*.patch
- overrides/patches/numba/*.patch
- overrides/settings/numba.yaml
- package_plugins/numba.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cudnn_frontend-*/*.patch
- overrides/patches/nvidia_cudnn_frontend/*.patch
- overrides/settings/nvidia_cudnn_frontend.yaml
- package_plugins/nvidia_cudnn_frontend.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/nvidia_cutlass_dsl-*/*.patch
- overrides/patches/nvidia_cutlass_dsl/*.patch
- overrides/settings/nvidia_cutlass_dsl.yaml
- package_plugins/nvidia_cutlass_dsl.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pplx_kernels-*/*.patch
- overrides/patches/pplx_kernels/*.patch
- overrides/settings/pplx_kernels.yaml
- package_plugins/pplx_kernels.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/pyarrow-*/*.patch
- overrides/patches/pyarrow/*.patch
- overrides/settings/pyarrow.yaml
- package_plugins/pyarrow.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/ray-*/*.patch
- overrides/patches/ray/*.patch
- overrides/settings/ray.yaml
- package_plugins/ray.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/tilelang-*/*.patch
- overrides/patches/tilelang/*.patch
- overrides/settings/tilelang.yaml
- package_plugins/tilelang.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torch-*/*.patch
- overrides/patches/torch/*.patch
- overrides/settings/torch.yaml
- package_plugins/torch.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchao-*/*.patch
- overrides/patches/torchao/*.patch
- overrides/settings/torchao.yaml
- package_plugins/torchao.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchaudio-*/*.patch
- overrides/patches/torchaudio/*.patch
- overrides/settings/torchaudio.yaml
- package_plugins/torchaudio.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/torchvision-*/*.patch
- overrides/patches/torchvision/*.patch
- overrides/settings/torchvision.yaml
- package_plugins/torchvision.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/triton-*/*.patch
- overrides/patches/triton/*.patch
- overrides/settings/triton.yaml
- package_plugins/triton.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/vllm-*/*.patch
- overrides/patches/vllm/*.patch
- overrides/settings/vllm.yaml
- package_plugins/vllm.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/wandb-*/*.patch
- overrides/patches/wandb/*.patch
- overrides/settings/wandb.yaml
- package_plugins/wandb.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xformers-*/*.patch
- overrides/patches/xformers/*.patch
- overrides/settings/xformers.yaml
- package_plugins/xformers.py
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
changes:
- overrides/patches/xgrammar-*/*.patch
- overrides/patches/xgrammar/*.patch
- overrides/settings/xgrammar.yaml
- package_plugins/xgrammar.py
before_script:
- env
- dnf install -y which curl bash ncurses awk
- |
set -eux
if [[ "${EPHEMERAL_COLLECTION:-false}" = "true" ]]; then
mkdir -p "collections/${COLLECTION}/${VARIANT}"
echo "${CONSTRAINTS_RULES_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints-rules.txt"
echo "${REQUIREMENTS_TXT}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/requirements.txt"
echo "${CONSTRAINTS_TXT:-}" | sed 's/|/\n/g' | tee "collections/${COLLECTION}/${VARIANT}/constraints.txt"
fi
- podman login $CI_REGISTRY --username $CI_REGISTRY_USER --password "$CI_REGISTRY_PASSWORD"
- mkdir -p "${JOB_OUTPUT_DIR}"
- cp -rv collections "${JOB_OUTPUT_DIR}/"
- echo -e "machine gitlab.com\nlogin platform-engineering-bot\npassword ${BOT_PAT}"
> ${JOB_OUTPUT_DIR}/.netrc
- mkdir -p /etc/containers
- |
cat > /etc/containers/storage.conf << EOF
[storage]
driver = "overlay"
runroot = "/var/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
mount_program = ""
EOF
- mkdir -p /var/run/containers/storage
- mkdir -p /var/lib/containers/storage
- rm -rf /var/lib/containers/storage/*
- rm -rf /var/run/containers/storage/*
script:
- |
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.9-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
${API_SCRIPT}
- |
if [ -f ./bin/upload_to_pulp.sh ] && [[ "$CI_JOB_NAME" == *"build-wheels" ]]; then
podman run \
-v "$JOB_OUTPUT_DIR:/mnt" \
-v ".:/collection-repository" \
-e "NETRC=/mnt/.netrc" \
-e "OUTDIR=$OUTDIR" \
-e "VARIANT=cuda12.9-ubi9" \
-e "COLLECTION=torch-2.9.0" \
-e "PRODUCT_VERSION=$PRODUCT_VERSION" \
-e "ENABLE_REPEATABLE_BUILD_MODE=false" \
-e "BOOTSTRAP_MODE=$BOOTSTRAP_MODE" \
-e "BUILD_MODE=$BUILD_MODE" \
-e "WHEEL_SERVER_PROJECT_PATH=${WHEEL_SERVER_PROJECT_PATH}" \
-e "SDIST_SERVER_PROJECT_PATH=${SDIST_SERVER_PROJECT_PATH}" \
-e "PUBLISH_AUTH_HEADER=${PUBLISH_AUTH_HEADER}" \
-e "RELEASE_VERSION=${RELEASE_VERSION}" \
-e "RELEASE_VERSION_SUFFIX=${RELEASE_VERSION_SUFFIX}" \
-e "RELEASE_TARBALL=${RELEASE_TARBALL}" \
-e "PUBLISH_URL=${PUBLISH_URL}" \
-e "GITLAB_PACKAGE_URL=${GITLAB_PACKAGE_URL}" \
-e "RUN_CLEAN_AND_UPLOAD=${RUN_CLEAN_AND_UPLOAD}" \
-e "BOT_PAT=${BOT_PAT}" \
-e "BOT_USER=${BOT_USER}" \
-e "BOOTSTRAP_RUN_ONBOARD=${BOOTSTRAP_RUN_ONBOARD}" \
-e "REPOSITORY_URL=${CI_REPOSITORY_URL}" \
-e "FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS=${FROMAGER_BOOTSTRAP_SKIP_CONSTRAINTS}" \
-e "PULP_CERT_BASE64=${PULP_CERT_BASE64}" \
-e "PULP_KEY_BASE64=${PULP_KEY_BASE64}" \
-e "PRODUCT_NAME=$PRODUCT_NAME" \
-e "CI_COMMIT_SHA=${CI_COMMIT_SHA}" \
-e "CI_PIPELINE_IID=${CI_PIPELINE_IID}" \
-e "CI_JOB_ID=${CI_JOB_ID}" \
-e "PULP_DOMAIN=${PULP_DOMAIN:-}" \
${IMAGE} \
/collection-repository/bin/upload_to_pulp.sh
fi
artifacts:
paths:
- "$JOB_OUTPUT_DIR/*.log"
- "$JOB_OUTPUT_DIR/computed-constraints.txt"
- "$JOB_OUTPUT_DIR/computed-requirements.txt"
- "$JOB_OUTPUT_DIR/work-dir/*/*.log"
- "$JOB_OUTPUT_DIR/work-dir/logs/"
- "$JOB_OUTPUT_DIR/work-dir/*.json"
- "$JOB_OUTPUT_DIR/work-dir/constraints.txt"
- "$JOB_OUTPUT_DIR/work-dir/build-sequence-summary.md"
when: always
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment