spcd/spcd/project.py
2024-09-17 12:22:15 +02:00

50 lines
1.2 KiB
Python

"""Continuous Integration project."""
from __future__ import annotations
from pathlib import Path
from typing import TYPE_CHECKING
from spcd.util import add_url_path
if TYPE_CHECKING:
from spcd.projects import Projects
BRANCH = [
"GITHUB_REF_NAME",
"CI_COMMIT_BRANCH",
]
NAME = [
"GITHUB_REPOSITORY",
"CI_PROJECT_PATH",
]
ROOT = [
"GITHUB_WORKSPACE",
"CI_PROJECT_DIR",
]
class Project:
"""Current project."""
def __init__(self, projects: Projects) -> None:
"""Set projects, branch, name, root & url.
:param projects: parent class with environment
:type projects: Projects
"""
self.projects = projects
# branch
for variable in BRANCH:
if value := projects.environment.get(variable, None):
self.branch = value
# name
for variable in NAME:
if value := projects.environment.get(variable, None):
self.name = Path(value).name
# root
for variable in ROOT:
if value := projects.environment.get(variable, None):
self.root = Path(value)
# url
self.url = add_url_path(projects.url, self.name)