Nastavte tento pracovní postup tak, aby automaticky nasadil vaši aplikaci do produkce a zefektivnil proces vydávání.

Netlify je webhostingová platforma a komplexní sada nástrojů pro nasazení a správu webových aplikací v cloudu.

Jeho funkce však sahají daleko za to – jeho funkce bez serveru vám umožňují spouštět kód na straně serveru bez vyhrazeného serveru.

Prozkoumejte, jak nastavit kanál CI/CD pro nasazení rozhraní Node.js REST API na Netlify pomocí akcí GitHub.

CI/CD potrubí s akcemi GitHub: Přehled

Průběžná integrace a průběžné doručování (CI/CD) jsou řadou sekvenčních, automatizovaných procesů, kterými softwarové aplikace procházejí před odesláním do výroby.

Obvykle se kanály CI/CD skládají z několika klíčových fází, včetně fáze zdroje, sestavení, testování a nasazení.

I když je možné tyto fáze provádět ručně, jejich automatizace nabízí několik výhod, včetně:

  • Minimalizace rizika lidských chyb.
  • Urychlení procesu uvolňování.
  • Zajištění konzistentního pracovního postupu pro dodávání kvalitního softwaru do výroby.
instagram viewer

Co jsou akce GitHubu?

GitHub Actions je nástroj integrovaný do GitHubu, který poskytuje širokou škálu předpřipravených akcí, které můžete použít k definování pracovních postupů jako kódu přímo v úložišti projektu pro automatizaci CI/CD potrubí.

Můžete také vytvořit vlastní akce, které budou vyhovovat vašim specifickým potřebám projektu, což vám umožní bez problémů vytvářet a nasazovat aplikace do výroby. Jednou z výhod GitHub Actions je bezproblémová integrace s dalšími funkcemi GitHubu, jako jsou žádosti o stažení a sledování problémů.

To umožňuje spouštět pracovní postupy založené na konkrétních událostech, jako je nové potvrzení, které zajišťuje, že vaše kanály CI/CD se automaticky spouštějí v případě potřeby.

Nastavte projekt Node.js

Chcete-li začít, musíte vytvořit expresní webový server. Chcete-li tak učinit, vytvořte lokálně novou složku a změňte adresář na svém terminálu.

mkdir express-netlify
cd express-netlify

Dále vytvořte a package.json pomocí souboru npm, Správce balíčků uzlů.

npm init -y

Nakonec nainstalujte závislosti požadované v projektu.

npm install express netlify-lambda serverless-http

The netlify-lambda balíček slouží jako lokální vývojový server, který usnadňuje testování funkcí bez serveru. bez serveru-http pomáhá při adaptaci aplikací Express.js na formát, který je kompatibilní s obslužnými nástroji funkcí bez serveru.

Netlify neposkytuje nativní podporu pro hostování a provozování plnohodnotných backendových aplikací. Místo toho nabízí funkce bez serveru jako alternativní řešení pro obsluhu backendových funkcí.

Tyto funkce spravují logiku na straně serveru, zpracovávají požadavky HTTP API a obsluhují dynamický obsah a poskytují funkce typu backend v rámci paradigmatu bez serveru.

Kód tohoto projektu najdete v něm úložiště GitHub.

Vytvořte expresní webový server

Vytvořte tři složky: dist, funkcí, a src v kořenovém adresáři složky vašeho projektu.

Před nastavením expresního serveru vytvořte prázdné místo index.html soubor v dist složku. Tento soubor funguje jako zástupný symbol, který umožňuje Netlify úspěšně nasadit aplikaci Express a obsluhovat trasy API.

Nyní vytvořte a src/app.js soubor a přidejte následující kód:

konst vyjádřit = vyžadovat("vyjádřit");
konst bez serveru = vyžadovat("bez serveru-http");

konst app = express();
konst router = expres. Router();

router.get("/", (req, res) => {
znovu.odeslat("Ahoj světe!")
});

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

modul.export = aplikace;
modul.exports.handler = bez serveru (aplikace);

Tento kód definuje expresní server s jedinou cestou pro kořenovou adresu URL, která zpracovává požadavky GET. The app.use funkce registruje middleware trasy s aplikací Express a zajišťuje, že všechny požadavky HTTP na cestu /.netlify/functions/app budou routerem správně zpracovány i v produkčním prostředí.

Pokud tedy přidáte nový koncový bod, např /api/auth, bude přístupný na /.netlify/functions/app/api/auth. Nakonec kód exportuje aplikaci Express a funkci obsluhy bez serveru.

To umožňuje místní testování serveru a zajišťuje, že jej můžete nasadit jako funkci bez serveru na Netlify.

Definujte soubor Netlify.toml

V kořenovém adresáři vytvořte nový Netlify.toml soubor a přidejte následující kód.

[stavět]
základ = "/"
příkaz = "npm run build"
publikovat = "/dist/"
funkce = "funkce/"
[build.environment]
NODE_VERSION = "16"
[funkce]
externí_uzel_moduly = ["vyjádřit"]
node_bundler = "esbuild"
[[přesměrování]]
síla = pravda
from = "/api/*"
stav = 200
to = "/.netlify/functions/app/:splat"
[[přesměrování]]
od = "/*"
stav = 200
to = "/index.html"

Kód určuje nastavení konfigurace sestavení a nasazení pro aplikaci Express na Netlify. Zahrnuje nastavení, jako je základní adresář, příkaz sestavení, publikační adresář a adresář funkcí.

Kromě toho definuje nastavení přesměrování, které by mělo spravovat směrování požadavků HTTP API a zajistit, aby byly správně směrovány na funkce Netlify bez serveru.

Aktualizujte soubor Package.json

Otevři package.json a přidejte tyto příkazy do objektu scripts.

"skripty": {
"Start": "netlify-lambda serve src",
"stavět": "netlify-lambda build src"
},

Spuštěním následujících příkazů sestavení a spuštění aplikace lokálně.

npm spustit sestavení
npm spuštění běhu

Server se spustí na portu 9000. Můžete pokračovat a otestovat rozhraní API pomocí Postman odesláním požadavků http://localhost: 9000/.netlify/functions/app

A konečně, před nastavením pracovního postupu GitHub Actions pro automatizaci nasazení na Netlify, vytvořit úložiště na GitHubua odeslat soubory projektu.

Nasaďte expresní aplikaci na Netlify

Nejprve nasaďte rozhraní API na Netlify před konfigurací pracovního postupu GitHub Actions. Chcete-li nasadit aplikaci Express na Netlify, postupujte podle těchto kroků.

  1. Zamiřte k Netlify a vytvořte si účet a přihlaste se Přehled strana.
  2. Vyberte a klikněte na Weby tab.
  3. Klikněte na Import z Git tlačítko a vyberte GitHub jako platforma poskytovatele Git. Netlify vás vyzve k ověření pomocí GitHubu, aby mu udělil přístup k vašemu účtu a úložištím projektu.
  4. Ze seznamu zobrazených úložišť vyberte úložiště projektu Express.
  5. Po výběru úložiště musíte nakonfigurovat nastavení sestavení pro proces nasazení. Netlify tento proces zjednodušuje tím, že automaticky detekuje technologii použitou k sestavení aplikace a předem vyplní pole požadovanými nastaveními sestavení. V tomto případě příkaz build, publish a adresář funkcí.
  6. Nakonec klikněte na Nasadit web tlačítko pro dokončení procesu.

Vytvořte pracovní postup akcí GitHub

Klikněte na Akce v úložišti GitHub vašeho projektu. V Průběžná integrace sekce, vyberte a klikněte na Nakonfigurujte Node.js Pracovní postup.

V editoru GitHub přejmenujte název souboru na Netlify.yml, odstraňte standardní kód pracovního postupu Node.js a přidejte kód níže:

název:StavětaNasaditnaNetlify
na:
TAM:
pull_request:
pracovní místa:
stavět:
nájezdy:ubuntu-22.04
kroky:
-používá:actions/checkout@v3

# ( Sestavit do ./dist nebo jiného adresáře... )

-název:NasaditnaNetlify
používá:nwtgck/[email protected]
s:
vydavatelský adresář:'./dist'
výrobní pobočka:hlavní
github-token:${{tajemství. GITHUB_TOKEN}}
zpráva o nasazení:"Nasadit z akcí GitHub"
enable-pull-request-comment:Nepravdivé
enable-commit-comment:skutečný
overwrites-pull-request-comment:skutečný
env:
NETLIFY_AUTH_TOKEN:${{tajemství. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{tajemství. NETLIFY_SITE_ID}}
časový limit-minuty:1

Zde je rozpis vlastností pracovního postupu:

  • na: Události, které spouštějí akce v tomto pracovním postupu.
  • pracovní místa: Určuje událost, kterou má spustit konkrétní akce, což jsou: události sestavení a nasazení.
  • náběhy: hostitelské produkční prostředí pro akci.
  • kroky: Určuje řadu kroků potřebných k provedení konkrétní úlohy.
  • s: Definuje argumenty potřebné pro správné spuštění akcí.
  • env: určuje požadované proměnné prostředí pro pracovní postup.

Nakonec potvrďte aktualizace provedené v tomto souboru. GitHub by měl automaticky spustit pracovní postup.

Počáteční sestavení však spustí chybu, protože musíte přidat tajné proměnné požadované pracovním postupem: ID nasazeného webu a ověřovací token Netlify. Zamiřte ke svému Nastavení webu na Netlify a zkopírujte soubor ID webu.

Chcete-li získat ověřovací token, klikněte na uživatelský profil a vyberte ikonu Uživatelské nastavení možnost z rozevíracího okna. Na stránce nastavení vyberte Aplikacea klikněte Nový přístupový token vygenerovat váš ověřovací token.

Přidejte dvě proměnné prostředí jako NETLIFY_SITE_ID a NETLIFY_AUTH_TOKEN do sekcí proměnných prostředí a tajných klíčů úložiště ve vašem úložišti GitHub. Po provedení těchto změn spusťte pracovní postup znovu. Netlify automaticky nasadí všechny následné změny, které provedete pomocí tohoto kanálu.

Pokračujte a otestujte API pomocí Postman zadáním požadavků na tuto adresu URL: /.netlify/functions/app.

Konfigurace kanálů CI/CD pomocí akcí GitHub a Netlify

Využitím funkcí Netlify bez serveru můžete nasadit na Netlify plnohodnotné webové aplikace, které zahrnují jak funkčnost na straně klienta, tak i backend.

Nastavení kanálů CI/CD pro aplikace pomocí akcí GitHub navíc nabízí zjednodušený přístup k automatizaci procesu sestavení a nasazení. To vám umožní definovat pracovní postupy, které zajistí bezproblémový a spolehlivý vývojový proces, počínaje nápadem a procházet až do fáze vydání.