mirror of https://gitlab.freedesktop.org/mesa/mesa
36 lines
886 B
Python
36 lines
886 B
Python
import os
|
|
import re
|
|
from enum import Enum
|
|
|
|
|
|
class LavaFarm(Enum):
|
|
"""Enum class representing the different LAVA farms."""
|
|
|
|
LIMA = 1
|
|
COLLABORA = 2
|
|
UNKNOWN = 3
|
|
|
|
|
|
LAVA_FARM_RUNNER_PATTERNS: dict[LavaFarm, str] = {
|
|
# Lima pattern comes first, since it has the same prefix as the
|
|
# Collabora pattern.
|
|
LavaFarm.LIMA: r"^mesa-ci-[\x01-\x7F]+-lava-lima$",
|
|
LavaFarm.COLLABORA: r"^mesa-ci-[\x01-\x7F]+-lava-[\x01-\x7F]+$",
|
|
LavaFarm.UNKNOWN: r"^[\x01-\x7F]+",
|
|
}
|
|
|
|
|
|
def get_lava_farm() -> LavaFarm:
|
|
"""
|
|
Returns the LAVA farm based on the RUNNER_TAG environment variable.
|
|
|
|
:return: The LAVA farm
|
|
"""
|
|
runner_tag: str = os.getenv("RUNNER_TAG", "unknown")
|
|
|
|
for farm, pattern in LAVA_FARM_RUNNER_PATTERNS.items():
|
|
if re.match(pattern, runner_tag):
|
|
return farm
|
|
|
|
raise ValueError(f"Unknown LAVA runner tag: {runner_tag}")
|