GitHub Actions Generator
맞춤 가능한 트리거, 작업, 단계를 사용하여 CI/CD 파이프라인의 GitHub Actions 워크플로우 YAML을 생성합니다.
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는 YAML 구문을 직접 작성할 필요 없이 CI/CD 워크플로우 파일을 생성하는 데 도움을 주는 브라우저 기반 도구입니다. 직관적인 인터페이스를 통해 트리거, 작업, 빌드 단계를 선택하면, 이 도구는 프로덕션 준비가 완료된 워크플로우 YAML을 자동으로 생성하여 저장소의 .github/workflows 디렉토리에 바로 복사할 수 있습니다.
이 도구를 사용하려면 먼저 워크플로우 트리거(푸시 이벤트, 풀 리퀘스트, 예약된 시간, 수동 실행)를 정의한 후 각 작업이 실행할 단계를 구성합니다. 여러 작업을 순차적으로 또는 병렬로 실행하도록 추가하고, 환경 변수를 지정하며, 종속성 설치, 테스트 실행, 코드 빌드, 프로덕션 배포 등 일반적인 작업을 포함할 수 있습니다. 이 방식은 처음으로 지속적 통합을 설정하는 팀, YAML 구문 오류를 피하고 싶은 개발자, 또는 설정 파일을 수동으로 코딩하는 것보다 시각적 워크플로우 빌더를 선호하는 개발자에게 이상적입니다.
생성된 YAML은 GitHub Actions와 완전히 호환되며 추가 포맷팅이 필요 없습니다. 생성된 워크플로우를 워크플로우 파일에 직접 붙여넣고 필요시 비밀번호나 자격증명을 사용자 정의하면 됩니다. 이 도구는 워크플로우 생성을 단순화하지만, 복잡한 다중 환경 배포나 고급 캐싱 전략의 경우 생성된 출력을 수동으로 미조정하는 것이 여전히 유용할 수 있습니다.
자주 묻는 질문
코드 구현
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.