spcd/pidd/project.py

51 lines
1.1 KiB
Python
Raw Normal View History

2024-06-10 14:12:02 +02:00
"""CI project."""
2024-06-10 20:17:37 +02:00
2024-06-09 20:04:29 +02:00
from __future__ import annotations
2024-06-09 18:09:53 +02:00
from pathlib import Path
2024-06-09 20:04:29 +02:00
from typing import TYPE_CHECKING
2024-06-10 20:47:35 +02:00
from urllib.parse import urljoin
2024-06-09 20:04:29 +02:00
if TYPE_CHECKING:
2024-06-21 14:57:57 +02:00
from pidd.projects import Projects
2024-04-27 16:14:03 +02:00
BRANCH = [
2024-06-08 23:56:21 +02:00
"GITHUB_REF_NAME",
"CI_COMMIT_BRANCH",
2024-04-27 16:14:03 +02:00
]
NAME = [
2024-06-08 23:56:21 +02:00
"GITHUB_REPOSITORY",
"CI_PROJECT_PATH",
2024-04-27 16:14:03 +02:00
]
2024-05-30 00:21:42 +02:00
ROOT = [
2024-06-08 23:56:21 +02:00
"GITHUB_WORKSPACE",
"CI_PROJECT_DIR",
2024-05-30 00:21:42 +02:00
]
2024-04-27 16:14:03 +02:00
2024-04-27 15:32:33 +02:00
class Project:
2024-06-09 20:04:29 +02:00
def __init__(self: Project, projects: Projects) -> None:
2024-04-27 17:09:51 +02:00
self.projects = projects
2024-04-27 16:14:03 +02:00
# branch
for variable in BRANCH:
2024-04-27 17:09:51 +02:00
if value := projects.environment.get(variable, None):
2024-04-27 16:14:03 +02:00
self.branch = value
# name
for variable in NAME:
2024-04-27 17:09:51 +02:00
if value := projects.environment.get(variable, None):
2024-06-09 18:09:53 +02:00
self.name = Path(value).name
2024-05-30 00:21:42 +02:00
# root
for variable in ROOT:
if value := projects.environment.get(variable, None):
self.root = value
2024-04-27 17:09:51 +02:00
# url
2024-06-10 20:17:37 +02:00
self.url = urljoin(projects.url, self.name)
2024-06-10 21:10:51 +02:00
def __str__(self: Project) -> str:
2024-06-10 21:29:11 +02:00
return f"""\
2024-06-10 21:10:51 +02:00
branch = {self.branch}
name = {self.name}
root = {self.root}
url = {self.url}
"""