Uygulamanızı üretime otomatik olarak dağıtmak ve sürüm sürecinizi kolaylaştırmak için bu iş akışını kurun.

Netlify, web uygulamalarını bulutta dağıtmak ve yönetmek için bir web barındırma platformu ve kapsamlı bir araç paketidir.

Ancak özellikleri bunun çok ötesine geçer; sunucusuz işlevleri, ayrılmış bir sunucu olmadan sunucu tarafı kodu çalıştırmanıza olanak tanır.

GitHub Eylemlerini kullanarak Netlify'da bir Node.js REST API dağıtmak için bir CI/CD işlem hattını nasıl kuracağınızı keşfedin.

GitHub Eylemleriyle CI/CD Ardışık Düzenleri: Genel Bir Bakış

Sürekli Entegrasyon ve Sürekli Teslimat (CI/CD) boru hatları, yazılım uygulamalarının üretime gönderilmeden önce geçtiği bir dizi sıralı, otomatikleştirilmiş süreçtir.

Tipik olarak, CI/CD ardışık düzenleri, kaynak, oluşturma, test etme ve dağıtma aşamaları dahil olmak üzere birkaç temel aşamadan oluşur.

Bu aşamaları manuel olarak gerçekleştirmek mümkün olsa da, bunları otomatikleştirmek aşağıdakiler de dahil olmak üzere çeşitli avantajlar sunar:

instagram viewer
  • İnsan hatası riskini en aza indirmek.
  • Serbest bırakma sürecini hızlandırmak.
  • Kaliteli yazılımı üretime göndermek için tutarlı bir iş akışı sağlamak.

GitHub İşlemleri Nedir?

GitHub Eylemleri, GitHub'a entegre edilmiş ve çok çeşitli önceden oluşturulmuş eylemler sağlayan bir araçtır. CI/CD'yi otomatikleştirmek için doğrudan proje deponuzda kod olarak iş akışlarını tanımlamak için kullanabilirsiniz boru hatları.

Ayrıca, özel proje ihtiyaçlarınıza uygun özel eylemler oluşturarak, uygulamaları sorunsuz bir şekilde oluşturmanıza ve üretime dağıtmanıza olanak tanır. GitHub Actions'ın avantajlarından biri, çekme istekleri ve sorun izleme gibi diğer GitHub özellikleriyle sorunsuz entegrasyonudur.

Bu, CI/CD ardışık düzenlerinizin gerektiğinde otomatik olarak tetiklenmesini sağlayan yeni bir taahhüt gibi belirli olaylara dayalı iş akışlarını tetiklemeyi mümkün kılar.

Node.js Projesini Kurun

Başlamak için oluşturmanız gerekir Ekspres web sunucusu. Bunu yapmak için yerel olarak yeni bir klasör oluşturun ve terminalinizdeki dizini değiştirin.

mkdir ekspres-netlify
cd express-netlify

Ardından, bir paket.json kullanarak dosya npm, Düğüm Paket Yöneticisi.

npm başlatma -y

Son olarak, projede gerekli olan bağımlılıkları kurun.

npm kurulumu ekspres netlify-lambda sunucusuz-http

bu netlify-lambda paketi, sunucusuz işlevlerin test edilmesini kolaylaştıran yerel bir geliştirme sunucusu görevi görür. sunucusuz-http Express.js uygulamalarının sunucusuz işlev işleyicilerle uyumlu bir biçime uyarlanmasına yardımcı olur.

Netlify, tam teşekküllü arka uç uygulamalarını barındırmak ve çalıştırmak için yerel destek sağlamaz. Bunun yerine, arka uç işlevselliğini işlemek için alternatif bir çözüm olarak sunucusuz işlevler sunar.

Bu işlevler sunucu tarafı mantığını yönetir, HTTP API isteklerini işler ve dinamik içerik sunarak sunucusuz paradigma içinde arka uç benzeri işlevsellik sağlar.

Bu projenin kodunu kendi içinde bulabilirsiniz. GitHub deposu.

Ekspres Web Sunucusu Oluşturma

Üç klasör oluşturun: mesafe, fonksiyonlar, Ve kaynak proje klasörünüzün kök dizininde.

Express sunucusunu kurmadan önce boş bir index.html dosya mesafe dosya. Bu dosya, Netlify'ın Express uygulamasını başarılı bir şekilde dağıtmasına ve API yollarına hizmet etmesine izin veren bir yer tutucu görevi görür.

Şimdi, bir oluştur kaynak/uygulama.js dosyasını açın ve aşağıdaki kodu ekleyin:

sabit ifade = gerekmek("ifade etmek");
sabit sunucusuz = gerekmek("sunucusuz-http");

sabit uygulama = ekspres();
sabit yönlendirici = ekspres. Yönlendirici();

yönlendirici.get("/", (gerekli, res) => {
res.gönder("Selam Dünya!")
});

uygulama.kullan(`/.netlify/işlevler/uygulama`, yönlendirici);

modül.exports = uygulama;
modül.exports.handler = sunucusuz (uygulama);

Bu kod, GET isteklerini işleyen kök URL için tek bir yola sahip bir Express sunucusunu tanımlar. bu uygulama.kullan işlevi, rotanın ara yazılımını Express uygulamasına kaydederek, yola yapılan herhangi bir HTTP isteğinin /.netlify/functions/app üretim ortamında bile yönlendirici tarafından düzgün bir şekilde işlenecektir.

Sonuç olarak, gibi yeni bir bitiş noktası eklerseniz /api/auth, tarihinde erişilebilir olacak /.netlify/functions/app/api/auth. Son olarak, kod, Express uygulamasını ve sunucusuz işleyici işlevini dışa aktarır.

Bu, sunucunun yerel olarak test edilmesine izin verir ve sunucuyu Netlify'da sunucusuz bir işlev olarak dağıtabilmenizi sağlar.

Netlify.toml Dosyasını Tanımlayın

Kök dizinde yeni bir tane oluşturun. Netlify.toml dosyasını açın ve aşağıdaki kodu ekleyin.

[inşa etmek]
temel = "/"
komut = "npm derlemeyi çalıştır"
yayın = "/dist/"
fonksiyonlar = "fonksiyonlar/"
[yapı.ortam]
NODE_VERSION = "16"
[işlevler]
harici_node_modules = ["ifade etmek"]
node_bundler = "esbuild"
[[yönlendirmeler]]
kuvvet = doğru
kaynak = "/api/*"
durum = 200
to = "/.netlify/functions/app/:splat"
[[yönlendirmeler]]
="/*"
durum = 200
= "/index.html"

Kod, Netlify'daki Express uygulaması için oluşturma ve dağıtım yapılandırma ayarlarını belirtir. Temel dizin, oluşturma komutu, yayınlama dizini ve işlevler dizini gibi ayarları içerir.

Ek olarak, HTTP API isteklerinin yönlendirmesini yönetmesi gereken yeniden yönlendirme ayarlarını tanımlayarak bunların Netlify sunucusuz işlevlerine doğru şekilde yönlendirilmelerini sağlar.

Package.json Dosyasını Güncelleyin

paket.json dosyasını açın ve bu komutları scripts nesnesine ekleyin.

"Kodlar": {
"başlangıç": "netlify-lambda hizmet kaynağı",
"inşa etmek": "netlify-lambda yapı kaynağı"
},

Uygulamayı yerel olarak oluşturmak ve başlatmak için aşağıdaki komutları çalıştırın.

npm derlemeyi çalıştır
npm çalıştırma başlangıcı

Sunucu 9000 numaralı bağlantı noktasından başlayacaktır. İstekte bulunarak Postman'ı kullanarak API'yi test edebilirsiniz. http://localhost: 9000/.netlify/işlevler/uygulama

Son olarak, Netlify'daki dağıtımları otomatikleştirmek için GitHub Actions iş akışını kurmadan önce, GitHub'da bir depo oluşturun, ve proje dosyalarını itin.

Ekspres Uygulamayı Netlify'da Dağıtın

İlk olarak, GitHub Actions iş akışını yapılandırmadan önce API'yi Netlify'da dağıtın. Netlify'da Express uygulamasını dağıtmak için bu adımları izleyin.

  1. Başını aşmak Netleştir ve bir hesap oluşturun ve oturum açın genel bakış sayfa.
  2. seçin ve üzerine tıklayın Siteler sekme.
  3. Tıkla Git'ten içe aktar düğmesine basın ve seçin GitHub Git sağlayıcı platformu olarak. Netlify, hesabınıza ve proje havuzlarına erişim izni vermek için sizden GitHub ile kimlik doğrulaması yapmanızı isteyecektir.
  4. Görüntülenen havuzlar listesinden Express proje havuzunu seçin.
  5. Depoyu seçtikten sonra, konuşlandırma işlemi için derleme ayarlarını yapılandırmanız gerekir. Netlify, uygulamayı oluşturmak için kullanılan teknolojiyi otomatik olarak algılayarak bu süreci basitleştirir ve alanları gerekli derleme ayarlarıyla önceden doldurur. Bu durumda, derleme komutu, yayınlama ve işlevler dizini.
  6. Son olarak, tıklayın Siteyi dağıt düğmesine basarak işlemi tamamlayın.

GitHub Actions İş Akışı Oluşturma

Tıkla Hareketler projenizin GitHub deposundaki sekme. İçinde Sürekli entegrasyon bölümünü seçin ve tıklayın Node.js'yi yapılandırın iş akışı.

GitHub düzenleyicisinden, dosya adını şu şekilde yeniden adlandırın: Netlify.yml, standart Node.js iş akışı kodunu silin ve aşağıdaki kodu ekleyin:

isim:İnşa etmekVeDağıtmakileNetleştir
Açık:
itmek:
çekme_isteği:
Meslekler:
inşa etmek:
çalışma:ubuntu-22.04
adımlar:
-kullanır:işlemler/ödeme@v3

# ( ./dist veya başka bir dizine oluşturun... )

-isim:DağıtmakileNetleştir
kullanır:nwtgck/[email protected]
ile:
yayın-dir:'./dist'
üretim şubesi:ana
github belirteci:${{sırlar. GITHUB_TOKEN}}
konuşlandırma mesajı:"GitHub Eylemlerinden dağıtın"
etkinleştirme-çekme-isteği-yorumu:YANLIŞ
etkinleştirme-taahhüt-yorum:doğru
üzerine yazar-çekme-isteği-yorumu:doğru
ortam:
NETLIFY_AUTH_TOKEN:${{sırlar. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{sırlar. NETLIFY_SITE_ID}}
zaman aşımı dakikaları:1

İşte iş akışı özelliklerinin bir dökümü:

  • Açık: Bu iş akışındaki eylemleri tetikleyen olaylar.
  • Meslekler: Belirli bir Eylemin çalıştırması gereken olayı belirtir: derleme ve dağıtma olayları.
  • devam eden: eylem için ana üretim ortamı.
  • adımlar: Belirli bir işi gerçekleştirmek için gereken bir dizi adımı belirtir.
  • ile: Eylemlerin düzgün çalışması için gerekli bağımsız değişkenleri tanımlar.
  • çevre: iş akışı için gerekli ortam değişkenlerini belirtir.

Son olarak, bu dosyaya yapılan güncellemeleri taahhüt edin. GitHub, iş akışını otomatik olarak tetiklemelidir.

Bununla birlikte, ilk derleme, iş akışının gerektirdiği gizli değişkenleri eklemeniz gerektiğinden bir hatayı tetikleyecektir: dağıtılan site kimliği ve Netlify'ın kimlik doğrulama belirteci. senin yanına git Site ayarları Netlify'a kopyalayın ve Site kimliği.

Kimlik doğrulama jetonunu almak için tıklayın Kullanıcı profili simgesini seçin ve Kullanıcı ayarları açılan pencereden seçeneği seçin. Ayarlar sayfasında, seçin Uygulamalarve tıklayın Yeni erişim belirteci kimlik doğrulama belirtecinizi oluşturmak için.

NETLIFY_SITE_ID ve NETLIFY_AUTH_TOKEN olarak iki ortam değişkenini GitHub deponuzdaki hem ortam değişkenleri hem de havuz sırları bölümlerine ekleyin. Bu değişiklikleri yaptıktan sonra iş akışını yeniden çalıştırın. Netlify, bu boru hattını kullanarak gönderdiğiniz sonraki değişiklikleri otomatik olarak dağıtacaktır.

Devam edin ve bu URL'ye istekte bulunarak Postman'ı kullanarak API'yi test edin: /.netlify/functions/app.

CI/CD Ardışık Düzenlerini GitHub Actions ve Netlify ile Yapılandırma

Netlify'ın sunucusuz işlevlerini kullanarak, Netlify'da hem istemci tarafı hem de arka uç işlevselliğini kapsayan tam teşekküllü web uygulamalarını dağıtabilirsiniz.

Ek olarak, GitHub Actions ile uygulamalar için CI/CD ardışık düzenleri kurmak, derleme ve devreye alma sürecini otomatikleştirmeye yönelik kolaylaştırılmış bir yaklaşım sunar. Bu, fikir aşamasından başlayıp sürüm aşamasına kadar kesintisiz ve güvenilir bir geliştirme süreci sağlayan iş akışlarını tanımlamanıza olanak tanır.