Skip to content

Base

Базовый класс для GitHub Action.

В своем подклассе вы должны реализовать метод main() который вызывается из run().

Вы можете определить пользовательские типы входных и/или выходных данных в подклассе. Или вы можете ничего не делать в подклассе, если вам не нужны типизированные входные и выходные данные.

Обратите внимание, что это просто типы, экземпляры этих типов автоматически создаются в методе init.

Использование:

from pathlib import Path

from github_custom_actions import ActionBase, ActionInputs, ActionOutputs


class MyInputs(ActionInputs):
    my_input: str
    """My input description"""

    my_path: Path
    """My path description"""


class MyOutputs(ActionOutputs):
    runner_os: str
    """Runner OS description"""


class MyAction(ActionBase):
    inputs: MyInputs
    outputs: MyOutputs

    def main(self):
        if self.inputs.my_path is None:
            raise ValueError("my-path is required")
        self.inputs.my_path.mkdir(exist_ok=True)
        self.outputs.runner_os = self.env.runner_os
        self.summary.text += (
            self.render(
                "### {{ inputs.my_input }}.\n"
                "Have a nice day, {{ inputs['name'] }}!"
            )
        )


if __name__ == "__main__":
    MyAction().run()