İçeriğe geç
🛠️ToolsShed

GitHub Actions Generator

Özelleştirilebilir tetikleyiciler, işler ve adımları ile GitHub Actions iş akışı YAML'ı oluşturun.

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

Bu araç hakkında

GitHub Actions Generator, geliştiricilerin YAML sözdizimini manuel olarak yazmadan CI/CD iş akışı dosyaları oluşturmalarına yardımcı olan tarayıcı tabanlı bir araçtır. Sezgisel bir arayüz aracılığıyla tetikleyiciler, işler ve derleme adımlarını seçerek, araç otomatik olarak üretim için hazır iş akışı YAML'ini oluşturur ve bunu doğrudan deponuzun .github/workflows dizinine kopyalayabilirsiniz.

Bu aracı kullanmak için önce iş akışı tetikleyicisini (push olayları, çekme istekleri, zamanlanmış saatler veya manuel tetikleme) tanımlayın, ardından her işin yürütmesi gereken işleri ve adımları yapılandırın. Sırayla veya paralel olarak çalışan birden fazla iş ekleyebilir, ortam değişkenlerini belirtebilir ve bağımlılıkları yükleme, testleri çalıştırma, kod oluşturma ve üretime dağıtma gibi yaygın eylemleri dahil edebilirsiniz. Bu yaklaşım, sürekli entegrasyonu ilk kez kuran ekipler, YAML söz dizimi hatalarından kaçınmak isteyen geliştirici veya yapılandırma dosyalarını manuel olarak kodlamak yerine görsel bir iş akışı oluşturucuyu tercih eden herkes için idealdir.

Oluşturulan YAML, GitHub Actions ile tamamen uyumludur ve ek biçimlendirme gerektirmez. Bunu doğrudan iş akışı dosyanıza yapıştırın ve gerektiğinde gizli bilgileri veya kimlik bilgilerini özelleştirin. Bu araç iş akışı oluşturmayı basitleştirse de, karmaşık çok ortamlı dağıtımlar veya gelişmiş önbelleğe alma stratejileri yine de oluşturulan çıktının manuel ince ayarından yararlanabilir.

Sıkça Sorulan Sorular

Kod Uygulaması

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.