Source code for gcip2.ci.jobs.assets
1import dataclasses
2import pathlib
3import typing
4
5ASSETS_DIR = pathlib.Path(__file__).parent
6
7
[docs]
8@dataclasses.dataclass
9class TextAsset:
10 script: str
11 path: pathlib.Path
12 relative_path: typing.ClassVar[str]
13
[docs]
14 @classmethod
15 def load(cls) -> typing.Self:
16 path = ASSETS_DIR / cls.relative_path
17 return cls(script=path.read_text(), path=path)
18
19
[docs]
20class AfterScriptLinux(TextAsset):
21 relative_path = "after_script_linux.sh"
22
23
[docs]
24class BeforeScriptLinux(TextAsset):
25 relative_path = "before_script_linux.sh"
26
27
[docs]
28class ScriptLinux(TextAsset):
29 relative_path = "script_linux.sh"