Állítsa be ezt a munkafolyamatot az alkalmazás éles üzembe helyezéséhez és a kiadási folyamat egyszerűsítéséhez.
A Netlify egy webtárhely-platform és egy átfogó eszközkészlet a webalkalmazások felhőben történő telepítéséhez és kezeléséhez.
Funkciói azonban jóval túlmutatnak ezen – kiszolgáló nélküli funkciói lehetővé teszik a szerveroldali kód futtatását dedikált szerver nélkül.
Fedezze fel, hogyan állíthat be egy CI/CD folyamatot a Node.js REST API telepítéséhez a Netlify-on a GitHub Actions segítségével.
CI/CD Pipelines GitHub-műveletekkel: áttekintés
A Continuous Integration and Continuous Delivery (CI/CD) folyamatok sorozata olyan szekvenciális, automatizált folyamatok, amelyeken a szoftveralkalmazások átesnek, mielőtt a termelésbe kerülnének.
A CI/CD folyamatok általában több kulcsfázisból állnak, beleértve a forrás-, összeállítási, tesztelési és telepítési fázist.
Bár ezek a fázisok manuálisan is végrehajthatók, az automatizálásuk számos előnnyel jár, többek között:
- Az emberi hibák kockázatának minimalizálása.
- A kiadási folyamat felgyorsítása.
- Következetes munkafolyamat biztosítása a minőségi szoftverek gyártásba szállításához.
Mi az a GitHub Actions?
A GitHub Actions a GitHubba integrált eszköz, amely előre elkészített műveletek széles skáláját kínálja. segítségével a munkafolyamatokat kódként határozhatja meg közvetlenül a projekttárban a CI/CD automatizálásához csővezetékek.
Létrehozhat egyedi műveleteket is, amelyek megfelelnek az adott projekt igényeinek, lehetővé téve az alkalmazások létrehozását és üzembe helyezését problémamentesen. A GitHub Actions egyik előnye, hogy zökkenőmentesen integrálható más GitHub-funkciókkal, például a lekérési kérelmekkel és a problémakövetéssel.
Ez lehetővé teszi a munkafolyamatok elindítását konkrét események alapján, például egy új véglegesítést, amely biztosítja, hogy a CI/CD folyamatok szükség esetén automatikusan aktiválódjanak.
Állítsa be a Node.js projektet
A kezdéshez létre kell hozni egy Express webszerver. Ehhez hozzon létre egy új mappát helyileg, és módosítsa a könyvtárat a terminálon.
mkdir express-netlify
cd express-netlify
Ezután hozzon létre a package.json fájl használatával npm, a Node Package Manager.
npm init -y
Végül telepítse a projektben szükséges függőségeket.
npm telepítse az expressz netlify-lambda serverless-http
A netlify-lambda csomag helyi fejlesztői szerverként szolgál, amely megkönnyíti a szerver nélküli funkciók tesztelését. szerver nélküli-http segít az Express.js-alkalmazások olyan formátumra adaptálásában, amely kompatibilis a szerver nélküli funkciókezelőkkel.
A Netlify nem nyújt natív támogatást teljes értékű háttéralkalmazások üzemeltetéséhez és futtatásához. Ehelyett kiszolgáló nélküli funkciókat kínál alternatív megoldásként a háttérfunkciók kezelésére.
Ezek a funkciók kezelik a kiszolgálóoldali logikát, kezelik a HTTP API kéréseket, és dinamikus tartalmat szolgálnak ki, háttér-szerű funkcionalitást biztosítva a szerver nélküli paradigmán belül.
A projekt kódja megtalálható benne GitHub adattár.
Hozza létre az Express Web Servert
Hozzon létre három mappát: ker, funkciókat, és src a projektmappa gyökérkönyvtárában.
Az Express szerver beállítása előtt hozzon létre egy üres lapot index.html fájl a ker mappát. Ez a fájl helyőrzőként működik, amely lehetővé teszi a Netlify számára az Express alkalmazás sikeres üzembe helyezését és az API-útvonalak kiszolgálását.
Most hozzon létre a src/app.js fájlt, és adja hozzá a következő kódot:
const expressz = igényelnek("Expressz");
const szerver nélküli = igényelnek("szerver nélküli-http");const app = express();
const router = expressz. Router();router.get("/", (req, res) => {
res.send("Helló Világ!")
});app.use(`/.netlify/functions/app`, router);
modult.exports = alkalmazás;
modult.exports.handler = szerver nélküli (alkalmazás);
Ez a kód egy Express szervert határoz meg egyetlen útvonallal a gyökér URL számára, amely kezeli a GET kéréseket. A app.use A funkció regisztrálja az útvonal köztes szoftverét az Express alkalmazásban, biztosítva, hogy az elérési útra érkező HTTP-kérések
Következésképpen, ha új végpontot ad hozzá, például /api/auth, akkor elérhető lesz
Ez lehetővé teszi a kiszolgáló helyi tesztelését, és biztosítja, hogy kiszolgáló nélküli funkcióként telepítse a Netlify-on.
Határozza meg a Netlify.toml fájlt
A gyökérkönyvtárban hozzon létre egy újat Netlify.toml fájlt, és adja hozzá a következő kódot.
[épít]
alap = "/"
command = "npm run build"
közzététel = "/dist/"
functions = "függvények/"
[build.environment]
NODE_VERSION = "16"
[függvények]
external_node_modules = ["Expressz"]
node_bundler = "esbuild"
[[átirányítások]]
erő = igaz
from = "/api/*"
állapot = 200
to = "/.netlify/functions/app/:splat"
[[átirányítások]]
from = "/*"
állapot = 200
to = "/index.html"
A kód meghatározza a Netlify Express alkalmazás felépítési és telepítési konfigurációs beállításait. Olyan beállításokat tartalmaz, mint az alapkönyvtár, a build parancs, a közzétételi könyvtár és a függvénykönyvtár.
Ezenkívül meghatározza azokat az átirányítási beállításokat, amelyek kezelik a HTTP API-kérelmek útválasztását, biztosítva, hogy azok megfelelően a Netlify szerver nélküli funkcióihoz legyenek irányítva.
Frissítse a Package.json fájlt
Nyissa meg a package.json fájlt, és adja hozzá ezeket a parancsokat a scripts objektumhoz.
"szkriptek": {
"Rajt": "netlify-lambda serve src",
"épít": "netlify-lambda build src"
},
Futtassa a következő parancsokat az alkalmazás helyi felépítéséhez és elindításához.
npm run build
npm futás indítása
A szerver a 9000-es porton indul el. Továbbléphet, és tesztelheti az API-t a Postman segítségével, ha kéréseket küld a címre http://localhost: 9000/.netlify/functions/app
Végül, mielőtt beállítaná a GitHub Actions munkafolyamatot a Netlify-on történő telepítések automatizálására, hozzon létre egy adattárat a GitHubon, és nyomja meg a projektfájlokat.
Telepítse az Express alkalmazást a Netlify-on
Először telepítse az API-t a Netlify-on a GitHub Actions munkafolyamat konfigurálása előtt. Kövesse ezeket a lépéseket az Express alkalmazás Netlify-on való üzembe helyezéséhez.
- Irány oda Netlify és hozzon létre egy fiókot, és jelentkezzen be a Áttekintés oldalon.
- Válassza ki és kattintson a Webhelyek lapon.
- Kattintson a Importálás a Gitből gombot, és válassza ki GitHub mint a Git szolgáltatói platform. A Netlify felkéri Önt, hogy hitelesítsen a GitHub segítségével, hogy hozzáférést biztosítson a fiókjához és a projekttárolókhoz.
- Válassza ki az Express projekt lerakatot a megjelenített tárolók listájából.
- A lerakat kiválasztása után konfigurálnia kell a telepítési folyamat összeállítási beállításait. A Netlify leegyszerűsíti ezt a folyamatot azáltal, hogy automatikusan észleli az alkalmazás felépítéséhez használt technológiát, és előre kitölti a mezőket a szükséges összeállítási beállításokkal. Ebben az esetben a build parancs, a közzététel és a függvénykönyvtár.
- Végül kattintson a Telepítse a webhelyet gombot a folyamat befejezéséhez.
Hozzon létre egy GitHub Actions munkafolyamatot
Kattintson a Akciók lapon a projekt GitHub-tárhelyén. Ban,-ben Folyamatos integráció szakaszt, válassza ki, és kattintson a gombra Konfigurálja a Node.js fájlt munkafolyamat.
A GitHub szerkesztőben nevezze át a fájlnevet erre: Netlify.yml, törölje a sablon Node.js munkafolyamat kódját, és adja hozzá az alábbi kódot:
név:ÉpítésTelepítésnak nekNetlify
tovább:
nyom:
pull_request:
állások:
épít:
ráfutás:ubuntu-22.04
lépések:
-használja:action/checkout@v3# ( Build a ./dist vagy más könyvtárba... )
-név:Telepítésnak nekNetlify
használja:nwtgck/[email protected]
val vel:
közzétételi könyvtár:"./dist"
termelő ág:fő-
github-token:${{titkok. GITHUB_TOKEN}}
telepítési üzenet:„Üzembe helyezés a GitHub-műveletekből”
enable-pull-request-comment:hamis
enable-commit-comment:igaz
felülírja-pull-request-comment:igaz
env:
NETLIFY_AUTH_TOKEN:${{titkok. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{titkok. NETLIFY_SITE_ID}}
időtúllépési percek:1
Íme a munkafolyamat tulajdonságainak lebontása:
- tovább: Események, amelyek kiváltják a műveleteket ebben a munkafolyamatban.
- munkahelyek: Meghatározza azt az eseményt, amelyet egy adott műveletnek le kell futtatnia, amelyek a következők: összeállítási és telepítési események.
- ráfut: a művelet gazdakörnyezete.
- lépések: Egy adott feladat végrehajtásához szükséges lépések sorozatát határozza meg.
- val vel: Meghatározza a műveletek megfelelő futtatásához szükséges argumentumokat.
- env: megadja a munkafolyamathoz szükséges környezeti változókat.
Végül véglegesítse a fájl frissítéseit. A GitHubnak automatikusan be kell indítania a munkafolyamatot.
A kezdeti összeállítás azonban hibát fog kiváltani, mivel hozzá kell adnia a munkafolyamathoz szükséges titkos változókat: a telepített webhelyazonosítót és a Netlify hitelesítési jogkivonatát. Menj a tiédhez Webhely beállításai a Netlify-on, és másold ki a Webhelyazonosító.
A hitelesítési token beszerzéséhez kattintson a felhasználói profil ikont, és válassza ki a Felhasználói beállítások opciót a legördülő ablakból. A beállítások oldalon válassza a lehetőséget Alkalmazások, és kattintson Új hozzáférési token a hitelesítési token létrehozásához.
Adja hozzá a két környezeti változót NETLIFY_SITE_ID és NETLIFY_AUTH_TOKEN néven a GitHub-tárhely környezeti változóihoz és lerakattitkai szakaszaihoz. A módosítások elvégzése után futtassa újra a munkafolyamatot. A Netlify automatikusan telepít minden későbbi módosítást, amelyet ezen a folyamaton keresztül hajt végre.
Tesztelje az API-t a Postman segítségével úgy, hogy kéréseket küld erre az URL-re:
CI/CD-folyamatok konfigurálása a GitHub Actions és a Netlify segítségével
A Netlify szerver nélküli funkcióinak használatával teljes körű webalkalmazásokat telepíthet, amelyek a Netlify kliensoldali és háttérfunkcióit egyaránt magukban foglalják.
Ezenkívül a GitHub Actions segítségével a CI/CD-folyamatok beállítása az alkalmazásokhoz egyszerűsített megközelítést kínál a felépítési és telepítési folyamat automatizálásához. Ez lehetővé teszi olyan munkafolyamatok meghatározását, amelyek zökkenőmentes és megbízható fejlesztési folyamatot biztosítanak, kezdve az ötleteléstől a kiadási szakaszig.