0Pricing
DevOps Bootcamp · Ders

Özel GitHub Actions Geliştirme

GitHub Actions işlevselliğini genişletmek için JavaScript veya Docker kullanarak kendi yeniden kullanılabilir özel eylemlerinizi oluşturmayı öğrenin.

Özel GitHub Actions Geliştirme, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

GitHub Actions'ı Genişletme

GitHub Actions'ın hazır olarak sunmadığı belirli bir göreve iş akışınızda ihtiyaç duyarsanız ne olur? Ya da yeniden kullanmak istediğiniz karmaşık bir mantığınız varsa?

Özel eylemler, iş akışları için kendi yeniden kullanılabilir araçlarınızı oluşturmanızı sağlar. Bunlar, ihtiyaçlarınıza göre uyarlanmış belirli bir işi gerçekleştiren mini programlar gibidir.

Özelleştirmenin Gücü

Özel eylemler, CI/CD işlem hatlarınıza çeşitli faydalar sağlar:

  • Yeniden Kullanılabilirlik: Bir kez yazın, birçok iş akışında ve depoda kullanın.
  • Standartlaştırma: Kuruluşunuz genelinde tutarlı süreçler sağlayın.
  • Kapsülleme: Karmaşık mantığı basit bir arayüzün arkasında gizleyin.
  • Bütünleştirme: Belirli dahili araçlarla veya API'lerle etkileşim kurun.

JavaScript mi, Docker mı?

GitHub Actions, özel eylemler oluşturmak için iki temel yöntemi destekler:

  • JavaScript Eylemleri: JavaScript (veya TypeScript) ile yazılır ve doğrudan çalıştırıcı makinesinde çalışır. Basit görevler için hızlı ve kolaydır.
  • Docker Kapsayıcı Eylemleri: Ortamınızı ve kodunuzu bir Docker görüntüsü içinde kapsüller. Belirli bağımlılıklar veya diller gerektiren eylemler için idealdir.

Eyleminizi Tanımlama

Her özel eylemin kök dizininde bir action.yml dosyası bulunmalıdır. Bu YAML dosyası, GitHub Actions'a eyleminiz hakkında bilgi veren bir bildirim gibidir:

  • name ve description: Eyleminizin yaptığı iş.
  • inputs: Eyleminizin kabul ettiği veriler.
  • outputs: Eyleminizin ürettiği veriler.
  • runs: Eyleminizin nasıl çalıştırıldığı (ör. JavaScript dosyası veya Docker görüntüsü).

Basit JS Eylemi Örneği

Şimdi temel bir JavaScript eylemine bakalım. Bir action.yml ve bir index.js dosyasına ihtiyacınız olacak. action.yml, eylemin meta verilerini ve çalıştırma ortamını tanımlar.

# action.yml
name: 'Hello World Action'
description: 'Greets a person using a custom message'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'World'
outputs:
  greeting-message:
    description: 'The greeting message generated'
runs:
  using: 'node16'
  main: 'index.js'

JavaScript Kodunu Yazma

index.js dosyası asıl mantığı içerir. Girdileri almak ve çıktıları ayarlamak için @actions/core araç setini kullanırız.

Tam bir iş akışının dışında bile girdilerin ve çıktıların kavramsal olarak nasıl çalıştığını görmek için bu basit JavaScript kod parçacığını çalıştırmayı deneyin:

// index.js (simplified for demonstration)
const core = require('@actions/core');

try {
  const name = core.getInput('who-to-greet');
  const message = `Hello, ${name}!`;
  console.log(message);
  core.setOutput('greeting-message', message);
} catch (error) {
  core.setFailed(error.message);
}

// A standalone runnable example to demonstrate core logic
function runSimpleGreeting(inputName) {
  const name = inputName || 'World';
  const message = `Hello from runnable JS, ${name}!`;
  return message;
}

console.log(runSimpleGreeting('CoddyKit'));
console.log(runSimpleGreeting());

Docker Eylemlerinin Temelleri

Daha karmaşık ortamlar için Docker kapsayıcı eylemleri güçlü bir seçenektir. Bunlar, kapsayıcı görüntüsünü tanımlayan ve gerekli tüm bağımlılıkları bir araya getiren bir Dockerfile içerir.

action.yml dosyanız bu görüntüye başvurarak GitHub Actions'a görüntüyü oluşturup çalıştırmasını söyler.

# action.yml for Docker action
name: 'Docker Hello World'
description: 'Greets a name from within a Docker container'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'Docker'
outputs:
  greeting-message:
    description: 'The greeting message from Docker'
runs:
  using: 'docker'
  image: 'Dockerfile'

Eyleminizin Ortamı

Dockerfile, temel görüntüyü belirtir, bağımlılıkları yükler ve eyleminizin giriş noktasını tanımlar. Bu, eyleminizin tutarlı ve denetimli bir ortamda çalışmasını sağlar.

# Dockerfile
FROM alpine:3.16

LABEL "com.github.actions.name"="Docker Hello World"
LABEL "com.github.actions.description"="Greets a name from within a Docker container"
LABEL "com.github.actions.icon"="globe"
LABEL "com.github.actions.color"="blue"

# Copy your script into the container
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

Docker Eylemleri İçin Betik Yazma

Docker kapsayıcısının içinde, giriş betiğiniz (ör. entrypoint.sh) girdileri ortam değişkenleri olarak alır (INPUT_ ön ekiyle). Çıktıları, $GITHUB_OUTPUT ortam değişkeniyle belirtilen dosyaya yazarak ayarlar.

#!/bin/sh -l

# entrypoint.sh

echo "Hello from Docker, $INPUT_WHO_TO_GREET!"
GREETING="Hello from Docker, $INPUT_WHO_TO_GREET!"
echo "greeting-message=$GREETING" >> "$GITHUB_OUTPUT"

Eylemler İçin En İyi Uygulamalar

Özel eylemler geliştirirken sağlam ve sürdürülebilir araçlar oluşturmak için şu ipuçlarını göz önünde bulundurun:

  • Sürümleme: Kararlılık için anlamsal sürümleme kullanın (ör. v1, v2).
  • Test Etme: Eyleminizi yerel olarak ve iş akışlarında titizlikle test edin.
  • Hata Yönetimi: Açık hata iletileri ve kontrollü başarısızlıklar uygulayın.
  • Güvenlik: Girdileri temizleyin ve hassas verileri açığa çıkarmaktan kaçının.
  • Belgelendirme: README dosyanızda açık kullanım yönergeleri sağlayın.

Eylem Türü Denetimi

Standart GitHub Actions çalıştırıcılarında önceden yüklü olmayan belirli bir Python kitaplığını gerektiren özel bir GitHub Action oluşturmanız gerekiyor. Bu senaryo için genellikle hangi eylem türü en uygundur?

Özel Eyleklerin Özeti

Kendi özel eylemlerinizi oluşturarak GitHub Actions'ı nasıl genişletebileceğimizi inceledik. İki ana tür olan JavaScript ve Docker kapsayıcı eylemlerini, ayrıca action.yml dosyasının kritik rolünü öğrendiniz. Bunun yanı sıra her tür için girdilerin, çıktıların ve temel mantığın nasıl tanımlanacağını ve geliştirme için en iyi uygulamaları ele aldık.

Özel eylemler, CI/CD işlem hatlarında yeniden kullanılabilirlik ve standartlaştırma açısından güçlü araçlardır!

Sıkça Sorulan Sorular

“Özel GitHub Actions Geliştirme” dersi ücretsiz mi?

Evet — “Özel GitHub Actions Geliştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

“Özel GitHub Actions Geliştirme” dersinde ne öğreneceğim?

GitHub Actions işlevselliğini genişletmek için JavaScript veya Docker kullanarak kendi yeniden kullanılabilir özel eylemlerinizi oluşturmayı öğrenin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Özel GitHub Actions Geliştirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Özel GitHub Actions Geliştirme
  2. Şirket İçi Kullanım için Kendinden Barındırılan Çalıştırıcılar
  3. Kurumsal Sistemlerle Entegrasyon
  4. Bileşik Eylemler ve Marketplace'te Yayımlama
← DevOps Bootcamp Sayfasına Dön