Nastavte tento pracovný postup na automatické nasadenie vašej aplikácie do produkcie a zefektívnenie procesu vydávania.

Netlify je webhostingová platforma a komplexná sada nástrojov na nasadenie a správu webových aplikácií v cloude.

Jeho funkcie však ďaleko presahujú toto – jeho funkcie bez servera vám umožňujú spúšťať kód na strane servera bez vyhradeného servera.

Preskúmajte, ako nastaviť kanál CI/CD na nasadenie rozhrania Node.js REST API na Netlify pomocou akcií GitHub.

Potrubia CI/CD s akciami GitHub: Prehľad

Priebežná integrácia a kontinuálne doručovanie (CI/CD) sú sériou sekvenčných, automatizovaných procesov, ktorými softvérové ​​aplikácie prechádzajú pred odoslaním do výroby.

Potrubia CI/CD sa zvyčajne skladajú z niekoľkých kľúčových fáz, vrátane fázy zdroja, zostavenia, testovania a nasadenia.

Aj keď je možné tieto fázy vykonávať manuálne, ich automatizácia ponúka niekoľko výhod vrátane:

  • Minimalizácia rizika ľudských chýb.
  • Urýchlenie procesu uvoľnenia.
  • Zabezpečenie konzistentného pracovného postupu pri odosielaní kvalitného softvéru do výroby.
instagram viewer

Čo sú akcie GitHub?

GitHub Actions je nástroj integrovaný v GitHub, ktorý poskytuje širokú škálu vopred vytvorených akcií, ktoré môžete použiť na definovanie pracovných tokov ako kódu priamo vo vašom projektovom úložisku na automatizáciu CI/CD potrubia.

Môžete tiež vytvoriť vlastné akcie, ktoré vyhovujú vašim špecifickým projektovým potrebám, čo vám umožní bez problémov zostavovať a nasadzovať aplikácie do produkcie. Jednou z výhod GitHub Actions je bezproblémová integrácia s ďalšími funkciami GitHubu, ako sú požiadavky na stiahnutie a sledovanie problémov.

To umožňuje spúšťať pracovné toky na základe špecifických udalostí, ako je napríklad nové potvrdenie, ktoré zaisťuje, že vaše kanály CI/CD sa v prípade potreby automaticky spustia.

Nastavte projekt Node.js

Ak chcete začať, musíte vytvoriť expresný webový server. Ak to chcete urobiť, vytvorte nový priečinok lokálne a zmeňte adresár na vašom termináli.

mkdir express-netlify
cd express-netlify

Ďalej vytvorte a package.json pomocou súboru npm, správca balíkov uzlov.

npm init -y

Nakoniec nainštalujte závislosti požadované v projekte.

npm install express netlify-lambda serverless-http

The netlify-lambda balík slúži ako lokálny vývojový server, ktorý uľahčuje testovanie funkcií bez servera. bez servera-http pomáha pri adaptácii aplikácií Express.js na formát, ktorý je kompatibilný s obslužnými programami funkcií bez servera.

Netlify neposkytuje natívnu podporu pre hosťovanie a spúšťanie plnohodnotných backendových aplikácií. Namiesto toho ponúka funkcie bez servera ako alternatívne riešenie na obsluhu backendových funkcií.

Tieto funkcie riadia logiku na strane servera, spracovávajú požiadavky HTTP API a poskytujú dynamický obsah, pričom poskytujú funkcie podobné backendu v rámci paradigmy bez servera.

Kód tohto projektu nájdete v ňom úložisko GitHub.

Vytvorte expresný webový server

Vytvorte tri priečinky: dist, funkcie, a src v koreňovom adresári priečinka vášho projektu.

Pred nastavením expresného servera vytvorte medzeru index.html súbor v dist priečinok. Tento súbor funguje ako zástupný symbol, ktorý umožňuje Netlify úspešne nasadiť aplikáciu Express a obsluhovať trasy API.

Teraz vytvorte a src/app.js súbor a pridajte nasledujúci kód:

konšt vyjadriť = vyžadovať("expresné");
konšt bez servera = vyžadovať("bez servera-http");

konšt app = express();
konšt router = expres. Router();

router.get("/", (req, res) => {
znova.odoslať("ahoj svet!")
});

app.use(`/.netlify/functions/app`, router);

modul.export = aplikácia;
modul.exports.handler = bez servera (aplikácia);

Tento kód definuje expresný server s jednou cestou pre koreňovú adresu URL, ktorá spracováva požiadavky GET. The app.use funkcia registruje middleware trasy s aplikáciou Express, čím zaisťuje, že všetky požiadavky HTTP odoslané na cestu /.netlify/functions/app bude router správne spracovať aj v produkčnom prostredí.

V dôsledku toho, ak pridáte nový koncový bod, ako napr /api/auth, bude prístupný na /.netlify/functions/app/api/auth. Nakoniec kód exportuje aplikáciu Express a funkciu obsluhy bez servera.

To umožňuje lokálne testovanie servera a zaisťuje, že ho môžete nasadiť ako funkciu bez servera na Netlify.

Definujte súbor Netlify.toml

V koreňovom adresári vytvorte nový Netlify.toml súbor a pridajte nasledujúci kód.

[postaviť]
základ = "/"
príkaz = "npm run build"
publikovať = "/dist/"
funkcie = "funkcie/"
[build.environment]
NODE_VERSION = "16"
[funkcie]
moduly externého_uzla = ["expresné"]
node_bundler = "esbuild"
[[presmerovania]]
sila = pravda
from = "/api/*"
stav = 200
to = "/.netlify/functions/app/:splat"
[[presmerovania]]
od = "/*"
stav = 200
to = "/index.html"

Kód určuje nastavenia konfigurácie zostavy a nasadenia pre aplikáciu Express na Netlify. Zahŕňa nastavenia, ako je základný adresár, príkaz na zostavenie, publikovaný adresár a adresár funkcií.

Okrem toho definuje nastavenia presmerovania, ktoré by mali riadiť smerovanie požiadaviek HTTP API a zabezpečiť, aby boli správne nasmerované na funkcie Netlify bez servera.

Aktualizujte súbor Package.json

Otvor package.json a pridajte tieto príkazy do objektu scripts.

"skriptá": {
"štart": "netlify-lambda serve src",
"stavať": "netlify-lambda build src"
},

Spustite nasledujúce príkazy na vytvorenie a spustenie aplikácie lokálne.

npm spustiť zostavenie
spustenie chodu npm

Server sa spustí na porte 9000. Môžete pokračovať a otestovať API pomocou Postman zadaním požiadaviek http://localhost: 9000/.netlify/functions/app

Nakoniec, pred nastavením pracovného postupu GitHub Actions na automatizáciu nasadenia na Netlify, vytvorte úložisko na GitHuba pošlite súbory projektu.

Nasaďte expresnú aplikáciu na Netlify

Najprv nasaďte rozhranie API na Netlify pred konfiguráciou pracovného postupu akcií GitHub. Ak chcete nasadiť aplikáciu Express na Netlify, postupujte podľa týchto krokov.

  1. Zamierte k Netlify a vytvorte si účet a prihláste sa do Prehľad stránku.
  2. Vyberte a kliknite na Stránky tab.
  3. Klikni na Importovať z Gitu tlačidlo a vyberte GitHub ako platforma poskytovateľa Git. Netlify vás vyzve, aby ste sa overili pomocou GitHubu, aby ste mu poskytli prístup k vášmu účtu a projektovým úložiskám.
  4. Zo zoznamu zobrazených úložísk vyberte úložisko projektu Express.
  5. Po výbere úložiska musíte nakonfigurovať nastavenia zostavy pre proces nasadenia. Netlify zjednodušuje tento proces automatickým zisťovaním technológie použitej na zostavenie aplikácie a vopred vyplní polia požadovanými nastaveniami zostavenia. V tomto prípade príkaz build, publish a adresár funkcií.
  6. Nakoniec kliknite na Nasadiť stránku tlačidlo na dokončenie procesu.

Vytvorte pracovný postup akcií GitHub

Klikni na Akcie v úložisku GitHub vášho projektu. V Nepretržitá integrácia vyberte a kliknite na Nakonfigurujte Node.js pracovný tok.

V editore GitHub premenujte názov súboru na Netlify.yml, odstráňte štandardný kód pracovného postupu Node.js a pridajte kód nižšie:

názov:StavaťaNasadiťdoNetlify
na:
TAM:
pull_request:
pracovné miesta:
postaviť:
nájazdy:ubuntu-22.04
kroky:
-používa:actions/checkout@v3

# ( Zostaviť do ./dist alebo iného adresára... )

-názov:NasadiťdoNetlify
používa:nwtgck/[email protected]
s:
vydavateľský adresár:'./dist'
výrobná pobočka:Hlavná
github-token:${{tajomstvá. GITHUB_TOKEN}}
správa nasadenia:„Nasadiť z akcií GitHub“
enable-pull-request-comment:falošný
enable-commit-comment:pravda
overwrites-pull-request-comment:pravda
env:
NETLIFY_AUTH_TOKEN:${{tajomstvá. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{tajomstvá. NETLIFY_SITE_ID}}
časový limit-minúty:1

Tu je rozpis vlastností pracovného postupu:

  • na: Udalosti, ktoré spúšťajú akcie v tomto pracovnom postupe.
  • pracovných miest: Určuje udalosť, ktorá by sa mala spustiť konkrétna akcia, čo sú: udalosti zostavenia a nasadenia.
  • nábehy: hostiteľské produkčné prostredie pre akciu.
  • kroky: Určuje sériu krokov potrebných na vykonanie konkrétnej úlohy.
  • s: Definuje argumenty potrebné na správne spustenie akcií.
  • env: určuje požadované premenné prostredia pre pracovný tok.

Nakoniec potvrďte aktualizácie vykonané v tomto súbore. GitHub by mal automaticky spustiť pracovný postup.

Počiatočné zostavenie však spustí chybu, pretože musíte pridať tajné premenné požadované pracovným postupom: ID nasadenej lokality a overovací token Netlify. Choďte k svojmu Nastavenia lokality na Netlify a skopírujte súbor ID lokality.

Ak chcete získať autorizačný token, kliknite na užívateľský profil ikonu a vyberte položku Používateľské nastavenia možnosť z rozbaľovacieho okna. Na stránke nastavení vyberte Aplikáciea kliknite na tlačidlo Nový prístupový token na vygenerovanie vášho autorizačného tokenu.

Pridajte dve premenné prostredia ako NETLIFY_SITE_ID a NETLIFY_AUTH_TOKEN do sekcií premenných prostredia a tajných kľúčov úložiska vo vašom úložisku GitHub. Po vykonaní týchto zmien znova spustite pracovný postup. Netlify automaticky nasadí všetky následné zmeny, ktoré vložíte pomocou tohto kanála.

Pokračujte a otestujte API pomocou Postman zadaním požiadaviek na túto adresu URL: /.netlify/functions/app.

Konfigurácia kanálov CI/CD pomocou akcií GitHub a Netlify

Využitím funkcií Netlify bez servera môžete nasadiť plnohodnotné webové aplikácie, ktoré zahŕňajú funkčnosť na strane klienta aj na serveri Netlify.

Okrem toho nastavenie kanálov CI/CD pre aplikácie pomocou akcií GitHub ponúka zjednodušený prístup k automatizácii procesu zostavovania a nasadenia. To vám umožňuje definovať pracovné postupy, ktoré zaisťujú bezproblémový a spoľahlivý vývojový proces, počnúc nápadom a postupom až po fázu vydania.