Lewati ke konten
🛠️ToolsShed

GitHub Actions Generator

Hasilkan workflow GitHub Actions YAML untuk pipeline CI/CD dengan trigger, job, dan step yang dapat disesuaikan.

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

Tentang alat ini

GitHub Actions Generator adalah alat berbasis browser yang membantu pengembang membuat file alur kerja CI/CD tanpa menulis secara manual sintaks YAML. Dengan memilih pemicu, pekerjaan, dan langkah-langkah pembangunan melalui antarmuka intuitif, alat secara otomatis menghasilkan YAML alur kerja yang siap produksi yang dapat Anda salin langsung ke direktori .github/workflows repositori Anda.

Untuk menggunakan alat ini, mulai dengan mendefinisikan pemicu alur kerja (acara push, permintaan tarik, waktu terjadwal, atau aktivasi manual), kemudian konfigurasikan pekerjaan dan langkah-langkah yang harus dijalankan setiap pekerjaan. Anda dapat menambahkan beberapa pekerjaan yang berjalan secara berurutan atau paralel, menentukan variabel lingkungan, dan menyertakan tindakan umum seperti menginstal dependensi, menjalankan tes, membangun kode, dan menyebarkan ke produksi. Pendekatan ini ideal untuk tim yang menyiapkan integrasi berkelanjutan untuk pertama kalinya, pengembang yang ingin menghindari kesalahan sintaks YAML, atau siapa pun yang lebih memilih pembangun alur kerja visual daripada pengodean manual file konfigurasi.

YAML yang dihasilkan sepenuhnya kompatibel dengan GitHub Actions dan tidak memerlukan pemformatan tambahan. Tempelkan langsung ke file alur kerja Anda dan sesuaikan rahasia atau kredensial sesuai kebutuhan. Meskipun alat ini menyederhanakan pembuatan alur kerja, penyebaran multi-lingkungan yang kompleks atau strategi caching tingkat lanjut mungkin masih mendapat manfaat dari penyesuaian manual output yang dihasilkan.

Pertanyaan yang Sering Diajukan

Implementasi Kode

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.