Neler yeni

Foruma hoşgeldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Script GitHub Actions ile Node.js Bot Projelerinde Otomatik Test ve Yayın Akışı Kurma

Script içeriği.
Discord greatking
Katılım
12 Yıl 9 Ay 27 Gün
Mesajlar
494
Tepkime puanı
416
Puanları
63
Yaş
38
Cinsiyetiniz
Bay
Şube
Bursa
Node.js veya Discord bot projesi büyüdükçe yalnız kodu paylaşmak yetmez; her değişiklikte testlerin çalışması, bağımlılıkların temiz kurulması ve gerekirse paketin güvenli biçimde yayınlanması gerekir. GitHub Actions bu süreci otomatikleştirerek bot altyapılarında daha düzenli, hatası daha erken yakalanan bir geliştirme akışı kurmayı sağlar.

Bot Projesinde CI/CD Neden Gerekir?​


Küçük botlarda hata genelde elle çalıştırınca fark edilir. Fakat komut sayısı arttıkça, farklı geliştiriciler katkı verdikçe veya paket yayınlanmaya başladıkça manuel kontrol yetersiz kalır.

  • Pull request açıldığında testlerin otomatik çalışması sağlanır.
  • Bağımlılıklar her seferinde temiz ortamda kurulduğu için yerel bilgisayara bağlı hatalar azalır.
  • Lint veya format kontrolüyle basit hatalar erken yakalanır.
  • Sürüm etiketi geldiğinde paket yayınlama adımı otomatikleştirilebilir.

Temel Node.js Workflow Örneği​


Aşağıdaki örnek, GitHub Actions üzerinde Node.js kurulumu, npm cache, temiz kurulum ve test adımlarını içerir. Projede test komutu yoksa önce package.json içinde anlamlı bir test veya lint komutu oluşturmak gerekir.

Kod:
name: Node.js CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Kodu al
        uses: actions/checkout@v4

      - name: Node.js kur
        uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: npm

      - name: Bağımlılıkları temiz kur
        run: npm ci

      - name: Testleri çalıştır
        run: npm test

npm ci ve Cache Mantığı​


npm install geliştirme sırasında pratik olabilir, fakat CI ortamında npm ci daha öngörülebilir sonuç verir. Çünkü package-lock.json dosyasındaki kilitli bağımlılık ağacına göre temiz kurulum yapar.

  • setup-node, istenen Node.js sürümünü kurar.
  • cache: npm, npm indirme önbelleğini kullanarak sonraki çalışmaları hızlandırabilir.
  • npm ci, CI ortamında tekrarlanabilir kurulum için daha uygundur.

Paket Yayınlama Akışı Ne Zaman Eklenmeli?​


Bot altyapısı sadece özel sunucuda kullanılacaksa yayınlama adımı şart değildir. Ancak komut paketi, yardımcı kütüphane veya ortak bot çekirdeği npm ya da GitHub Packages üzerinden dağıtılacaksa testlerden sonra yayınlama işi ayrı bir workflow olarak kurulabilir.

Dikkat
Yayınlama adımlarında npm token, GitHub token veya registry bilgileri doğrudan workflow dosyasına yazılmamalı. Bu bilgiler GitHub Secrets üzerinden saklanmalı ve yalnız gerekli job içinde kullanılmalıdır.

Discord Bot Projeleri İçin Pratik Notlar​


  • Bot token değerini asla repoya koyma; secrets veya ortam değişkeni kullan.
  • Slash command kayıt scriptini test workflow içinde otomatik çalıştırma; yanlış yapılandırmada canlı komutları bozabilir.
  • Lint adımını testten önce çalıştırmak basit sözdizimi hatalarını daha hızlı gösterir.
  • Birden fazla Node.js sürümü destekleniyorsa matrix strategy ile sürüm testi yapılabilir.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz

  • Geniş / Dar görünüm

    Temanızı geniş yada dar olarak kullanmak için kullanabileceğiniz bir yapıyı kontrolünü sağlayabilirsiniz.

    Izgara görünümlü forum listesi

    Forum listesindeki düzeni ızgara yada sıradan listeleme tarzındaki yapının kontrolünü sağlayabilirsiniz.

    Resimli ızgara modu

    Izgara forum listesinde resimleri açıp/kapatabileceğiniz yapının kontrolünü sağlayabilirsiniz.

    Kenar çubuğunu kapat

    Kenar çubuğunu kapatarak forumdaki kalabalık görünümde kurtulabilirsiniz.

    Sabit kenar çubuğu

    Kenar çubuğunu sabitleyerek daha kullanışlı ve erişiminizi kolaylaştırabilirsiniz.

    Köşe kıvrımlarını kapat

    Blokların köşelerinde bulunan kıvrımları kapatıp/açarak zevkinize göre kullanabilirsiniz.

  • Zevkini yansıtan renk kombinasyonunu seç
    Arkaplan resimleri
    Renk geçişli arkaplanlar
Geri