Base
Базовый класс для GitHub Action.
ActionBase также предоставляет вспомогательные методы для вывода стандартных GitHub workflow
команд. С помощью debug(message: str) можно писать диагностические сообщения, которые появятся
только при запуске job с включенным debug-логированием. Для аннотаций, которые должны отображаться
в разделе “Files changed”, используйте
ActionBase.message() или её варианты
error_message,
notice_message и
warning_message, чтобы передать путь к файлу,
строку и колонку:
class MyAction(ActionBase):
def main(self):
self.debug("Завершён разбор конфигурации")
self.error_message(
message="Неизвестный ключ 'service_port'",
title="Некорректная конфигурация",
file="config.yml",
line=14,
column=1,
)
Эти методы формируют нужную команду ::<severity>:: автоматически; за подробностями параметров
можно обратиться по ссылкам выше.
В своем подклассе вы должны реализовать метод 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 }}.\nHave a nice day, {{ inputs['name'] }}!",
)
if __name__ == "__main__":
MyAction().run()