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 buildBu 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.