GitHub Actions Generator
Генерируйте YAML-рабочие процессы GitHub Actions для CI/CD-конвейеров с настраиваемыми триггерами, заданиями и шагами.
name: CI
on:
push:
branches: [main, master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Build
run: npm run buildОб этом инструменте
GitHub Actions Generator — это инструмент на основе браузера, который помогает разработчикам создавать файлы рабочего процесса CI/CD без необходимости вручную писать синтаксис YAML. Выбирая триггеры, задания и этапы сборки через интуитивный интерфейс, инструмент автоматически генерирует готовый к производству YAML рабочего процесса, который можно скопировать прямо в каталог .github/workflows вашего репозитория.
Чтобы использовать этот инструмент, сначала определите триггер рабочего процесса (события push, запросы pull, запланированное время или ручное запуск), а затем настройте задания и шаги, которые должно выполнять каждое задание. Вы можете добавить несколько заданий, выполняющихся последовательно или параллельно, указать переменные окружения и включить распространённые действия, такие как установка зависимостей, запуск тестов, сборка кода и развёртывание в производство. Этот подход идеален для команд, впервые настраивающих непрерывную интеграцию, разработчиков, которые хотят избежать ошибок синтаксиса YAML, или всех, кто предпочитает визуальный конструктор рабочих процессов вручную кодировать файлы конфигурации.
Сгенерированный YAML полностью совместим с GitHub Actions и не требует дополнительного форматирования. Вставьте его прямо в файл рабочего процесса и при необходимости настройте secrets или учётные данные. Хотя этот инструмент упрощает создание рабочего процесса, сложные развёртывания в нескольких окружениях или продвинутые стратегии кэширования могут по-прежнему выиграть от ручной настройки сгенерированного результата.
Часто задаваемые вопросы
Реализация кода
import yaml
def generate_github_actions_workflow(
name: str,
trigger: str,
jobs: list[dict]
) -> str:
workflow = {
"name": name,
"on": {},
"jobs": {}
}
if trigger == "push":
workflow["on"] = {"push": {"branches": ["main"]}}
elif trigger == "pull_request":
workflow["on"] = {"pull_request": {"branches": ["main"]}}
elif trigger == "schedule":
workflow["on"] = {"schedule": [{"cron": "0 0 * * *"}]}
else:
workflow["on"] = {trigger: {}}
for job in jobs:
job_id = job["id"]
workflow["jobs"][job_id] = {
"runs-on": job.get("runs_on", "ubuntu-latest"),
"steps": job.get("steps", [])
}
return yaml.dump(workflow, default_flow_style=False, sort_keys=False)
# Example: Node.js CI workflow
jobs = [
{
"id": "build",
"runs_on": "ubuntu-latest",
"steps": [
{"uses": "actions/checkout@v4"},
{"name": "Setup Node", "uses": "actions/setup-node@v4",
"with": {"node-version": "20"}},
{"name": "Install dependencies", "run": "npm ci"},
{"name": "Run tests", "run": "npm test"},
]
}
]
yaml_output = generate_github_actions_workflow("CI", "push", jobs)
print(yaml_output)Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.