README.md

Factory

Фрейворк для автоматизации любых задач с открытым исходным кодом.

  • Создавайте пайплайны
  • Выполняте задачи
  • Собирайте артефакты

Установка

Для установки нужно выполнить следующие команды

git clone https://gitflic.ru/project/amigo2208/factory.git
cd factory
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Перед запуском приложения нужно создать файл .env в директории factory. Поместите в файл данные для входа и ключ шифрования.

SECRET_KEY=test
FACTORY_USERNAME=test
FACTORY_PASSWORD=test

После этого можно запустить приложение следующей командой

uvicorn app:app --host 0.0.0.0 --port 8000

Начало использования

Термины

  • Пайплайн (Pipeline) - набор здач различных типов выполняющихся в определенном порядке.
  • Задача (Job) - еденица действия возвращающая информацию в текстовом виде и создающая артефакты
  • Артифакт (Artifact) - полезные данные возникшие в результате выполнения задачи.

Фреймворк позволяет описывать пайплайны в файлах формата yaml. Для начала создадим наш первый пайплайн.

name: My first pipeline  # Зададим название пайплайна
description: My first pipeline  # Также можно задать описание для пайплайна

jobs:  # Объявим набор задач в то порядке, в котором требуется их выполнить
  - get_date
  - make_format

get_date:  # Опишем первую задачу
  name: Get date  # Задаче также можно задать название
  description: Run date command  # И описание
  type: script  # Задаим тип задачи
  input: date # Укажем текст скрипта для выполнения

make_format:  # По аналогии опишем вторую задачу
  name: Format date
  description: Print formatted date
  type: script
  # В данном скрипте используем артефакт из предыдущей задачи
  script: "echo 'Current date and time is: {{ get_date.output }}'" 

Далее добавим получившийся пайплайн на странице Pipelines.

Pipelines

После этого мы можем запустить наш пайплайн, задачи автоматически начнут выполнятся в заданном порядке.

Список задач можно посмотреть в разделе Jobs.

Jobs

Обе задачи успешно завершились.

На странице Dashboard можно посмотреть историю запуска пайплайнов. При клики на идентификатор пайплайна станет доступна подробная информация по задачам и артефактам.

Dashboard

В результате выполнения пайплайна был получен артефакт со следующим содержимым:

Current date and time is: Сб 11 мая 2024 01:43:28 +07

Подробности использования

Шаблонизация

В качестве шаблонизатора используется движок jinja2, поэтому вы можете использовать все возможности jinja2 без ограничений изучив документацию по ссылке.

Описание пайплайнов

Так как для описания пайплайнов используется yaml, вы можете использовать все фичи yaml и при описании пайплайнов. Подробнее про синтаксис можно прочитать по ссылке.

Типы задач

  1. script - исполнятет bash скрипт.
  2. manual - позволяет ввести результат работы на странице Jobs.
Описание
Фреймворк комплесной автоматизации всего
Конвейеры
0 успешных
0 с ошибкой
Разработчики