Iestatiet šo darbplūsmu, lai automātiski izvietotu lietotni produkcijas versijā un racionalizētu izlaišanas procesu.
Netlify ir tīmekļa mitināšanas platforma un visaptverošs rīku komplekts tīmekļa lietojumprogrammu izvietošanai un pārvaldībai mākonī.
Taču tā funkcijas sniedzas daudz tālāk — tās bez servera funkcijas ļauj palaist servera puses kodu bez speciāla servera.
Izpētiet, kā iestatīt CI/CD konveijeru, lai Netlify izvietotu Node.js REST API, izmantojot GitHub Actions.
CI/CD cauruļvadi ar GitHub darbībām: pārskats
Nepārtrauktas integrācijas un nepārtrauktas piegādes (CI/CD) konveijeri ir virkne secīgu, automatizētu procesu, kuriem programmatūras lietojumprogrammas tiek pakļautas pirms nosūtīšanas uz ražošanu.
Parasti CI/CD cauruļvadi sastāv no vairākām galvenajām fāzēm, tostarp avota, izveides, testēšanas un izvietošanas fāzēm.
Lai gan šīs fāzes ir iespējams veikt manuāli, to automatizācija piedāvā vairākas priekšrocības, tostarp:
- Cilvēcisku kļūdu riska samazināšana.
- Izlaišanas procesa paātrināšana.
- Konsekventas darbplūsmas nodrošināšana kvalitatīvas programmatūras nosūtīšanai uz ražošanu.
Kas ir GitHub darbības?
GitHub Actions ir GitHub integrēts rīks, kas nodrošina plašu iepriekš izveidotu darbību klāstu, kas varat izmantot, lai definētu darbplūsmas kā kodu tieši savā projekta repozitorijā, lai automatizētu CI/CD cauruļvadi.
Varat arī izveidot pielāgotas darbības, kas atbilst jūsu konkrētajām projekta vajadzībām, ļaujot bez problēmām izveidot un izvietot lietojumprogrammas ražošanā. Viena no GitHub Actions priekšrocībām ir tā nemanāma integrācija ar citām GitHub funkcijām, piemēram, izvilkšanas pieprasījumiem un problēmu izsekošanu.
Tas ļauj aktivizēt darbplūsmas, pamatojoties uz konkrētiem notikumiem, piemēram, jaunu apņemšanos, kas nodrošina, ka jūsu CI/CD konveijeri tiek automātiski aktivizēti, kad nepieciešams.
Iestatiet projektu Node.js
Lai sāktu, jums ir jāizveido Express tīmekļa serveris. Lai to izdarītu, lokāli izveidojiet jaunu mapi un mainiet termināļa direktoriju.
mkdir express-netlify
cd express-netlify
Pēc tam izveidojiet a pack.json failu izmantojot npm, mezgla pakotņu pārvaldnieks.
npm init -y
Visbeidzot, instalējiet projektā nepieciešamās atkarības.
npm instalējiet express netlify-lambda serverless-http
The netlify-lambda pakotne kalpo kā vietējais izstrādes serveris, kas atvieglo bezservera funkciju testēšanu. bez servera-http palīdz pielāgot Express.js lietotnes formātam, kas ir saderīgs ar bezservera funkciju apstrādātājiem.
Netlify nesniedz vietējo atbalstu pilnvērtīgu aizmugursistēmas lietojumprogrammu mitināšanai un palaišanai. Tā vietā tas piedāvā bezservera funkcijas kā alternatīvu risinājumu aizmugursistēmas funkcionalitātes apstrādei.
Šīs funkcijas pārvalda servera puses loģiku, apstrādā HTTP API pieprasījumus un apkalpo dinamisku saturu, nodrošinot aizmugursistēmai līdzīgu funkcionalitāti bezservera paradigmā.
Jūs varat atrast šī projekta kodu tajā GitHub repozitorijs.
Izveidojiet Express Web serveri
Izveidojiet trīs mapes: dist, funkcijas, un src projekta mapes saknes direktorijā.
Pirms Express servera iestatīšanas izveidojiet tukšu index.html failu mapē dist mapi. Šis fails darbojas kā vietturis, kas ļauj Netlify veiksmīgi izvietot Express lietojumprogrammu un apkalpot API maršrutus.
Tagad izveidojiet a src/app.js failu un pievienojiet šādu kodu:
konst izteikt = pieprasīt("izteikt");
konst bez servera = pieprasīt("bez servera-http");konst lietotne = express();
konst maršrutētājs = ekspress. Maršrutētājs ();router.get("/", (req, res) => {
res.send("Sveika pasaule!")
});app.use(`/.netlify/functions/app', maršrutētājs);
modulis.exports = lietotne;
modulis.exports.handler = bez servera (lietotne);
Šis kods definē Express serveri ar vienu saknes URL maršrutu, kas apstrādā GET pieprasījumus. The app.use funkcija reģistrē maršruta starpprogrammatūru Express lietojumprogrammā, nodrošinot, ka visi HTTP pieprasījumi tiek nosūtīti ceļā
Līdz ar to, ja pievienojat jaunu beigu punktu, piemēram, /api/auth, tas būs pieejams
Tas ļauj veikt lokālu servera testēšanu un nodrošina, ka varat to izvietot kā bezservera funkciju pakalpojumā Netlify.
Definējiet failu Netlify.toml
Saknes direktorijā izveidojiet jaunu Netlify.toml failu un pievienojiet šādu kodu.
[būvēt]
bāze = "/"
komanda = "npm palaist build"
publicēt = "/dist/"
funkcijas = "funkcijas/"
[build.environment]
NODE_VERSION = "16"
[funkcijas]
external_node_modules = ["izteikt"]
node_bundler = "esbuild"
[[novirza]]
spēks = patiess
from = "/api/*"
statuss = 200
to = "/.netlify/functions/app/:splat"
[[novirza]]
no = "/*"
statuss = 200
uz = "/index.html"
Kods norāda Netlify lietotnes Express izveides un izvietošanas konfigurācijas iestatījumus. Tajā ir iekļauti tādi iestatījumi kā bāzes direktorijs, veidošanas komanda, publicēšanas direktorijs un funkciju direktorijs.
Turklāt tas definē novirzīšanas iestatījumus, kuriem jāpārvalda HTTP API pieprasījumu maršrutēšana, nodrošinot, ka tie tiek pareizi novirzīti uz Netlify bezservera funkcijām.
Atjauniniet failu Package.json
Atveriet pack.json failu un pievienojiet šīs komandas skriptu objektam.
"skripti": {
"sākt": "netlify-lambda serve src",
"būvēt": "netlify-lambda build src"
},
Izpildiet šādas komandas, lai izveidotu un palaistu lietojumprogrammu lokāli.
npm palaist veidot
npm palaišanas sākums
Serveris tiks palaists portā 9000. Varat turpināt un pārbaudīt API, izmantojot Postman, veicot pieprasījumus http://localhost: 9000/.netlify/functions/app
Visbeidzot, pirms GitHub Actions darbplūsmas iestatīšanas, lai automatizētu izvietošanu vietnē Netlify, izveidojiet repozitoriju vietnē GitHubun nospiediet projekta failus.
Izvietojiet Express lietojumprogrammu vietnē Netlify
Vispirms izvietojiet API vietnē Netlify, pirms konfigurējat GitHub Actions darbplūsmu. Veiciet šīs darbības, lai Netlify izvietotu lietotni Express.
- Dodieties uz Netlify un izveidojiet kontu un piesakieties Pārskats lappuse.
- Izvēlieties un noklikšķiniet uz Vietnes cilne.
- Noklikšķiniet uz Importēt no Git pogu un atlasiet GitHub kā Git pakalpojumu sniedzēja platforma. Netlify liks jums autentificēties ar GitHub, lai piešķirtu tai piekļuvi jūsu kontam un projektu krātuvēm.
- Parādīto repozitoriju sarakstā atlasiet Express projekta repozitoriju.
- Pēc repozitorija atlasīšanas jums ir jākonfigurē izvietošanas procesa izveides iestatījumi. Netlify vienkāršo šo procesu, automātiski nosakot lietojumprogrammas izveidei izmantoto tehnoloģiju un iepriekš aizpilda laukus ar nepieciešamajiem būvēšanas iestatījumiem. Šajā gadījumā veidošanas komanda, publicēšana un funkciju direktorijs.
- Visbeidzot noklikšķiniet uz Izvietot vietni pogu, lai pabeigtu procesu.
Izveidojiet GitHub darbību darbplūsmu
Noklikšķiniet uz Darbības cilni sava projekta GitHub repozitorijā. Iekš Nepārtraukta integrācija sadaļu, atlasiet un noklikšķiniet uz Konfigurējiet Node.js darbplūsma.
GitHub redaktorā pārdēvējiet faila nosaukumu uz Netlify.yml, izdzēsiet standarta Node.js darbplūsmas kodu un pievienojiet tālāk norādīto kodu:
nosaukums:BūvētunIzvietotuzNetlify
uz:
push:
pull_request:
darbavietas:
būvēt:
uzbrauciens:ubuntu-22.04
soļi:
-izmanto:action/checkout@v3# ( Build uz ./dist vai citu direktoriju... )
-nosaukums:IzvietotuzNetlify
izmanto:nwtgck/[email protected]
ar:
Publicēšanas direktors:'./dist'
ražošanas nozare:galvenais
github marķieris:${{noslēpumi. GITHUB_TOKEN}}
izvietošanas ziņojums:“Izvietot no GitHub Actions”
Enable-pull-request-comment:viltus
Enable-commit-comment:taisnība
pārraksta-pull-request-comment:taisnība
env:
NETLIFY_AUTH_TOKEN:${{noslēpumi. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{noslēpumi. NETLIFY_SITE_ID}}
taimauta minūtes:1
Tālāk ir sniegts darbplūsmas rekvizītu sadalījums.
- ieslēgts: notikumi, kas aktivizē darbības šajā darbplūsmā.
- darba vietas: norāda notikumu, kas jāpalaiž konkrētai darbībai, kas ir: veidošanas un izvietošanas notikumi.
- uzskrien: darbības resursdatora ražošanas vide.
- soļi: norāda darbību sēriju, kas jāveic, lai veiktu noteiktu darbu.
- ar: definē argumentus, kas nepieciešami, lai darbības pareizi darbotos.
- env: norāda darbplūsmai nepieciešamos vides mainīgos.
Visbeidzot, veiciet šim failam veiktos atjauninājumus. GitHub automātiski aktivizē darbplūsmu.
Tomēr sākotnējā versija izraisīs kļūdu, jo jums ir jāpievieno slepenie mainīgie, kas nepieciešami darbplūsmai: izvietotās vietnes ID un Netlify autentifikācijas pilnvara. Dodieties uz savu Vietnes iestatījumi vietnē Netlify un kopējiet Vietnes ID.
Lai iegūtu autentifikācijas pilnvaru, noklikšķiniet uz lietotāja profils ikonu un atlasiet Lietotāja iestatījumi opciju nolaižamajā logā. Iestatījumu lapā atlasiet Lietojumprogrammasun noklikšķiniet uz Jauna piekļuves pilnvara lai ģenerētu savu autentifikācijas pilnvaru.
Pievienojiet abus vides mainīgos kā NETLIFY_SITE_ID un NETLIFY_AUTH_TOKEN gan vides mainīgo, gan repozitorija noslēpumu sadaļām savā GitHub repozitorijā. Pēc šo izmaiņu veikšanas atkārtoti palaidiet darbplūsmu. Netlify automātiski izvietos visas turpmākās izmaiņas, kuras jūs virzīsit, izmantojot šo konveijeru.
Turpiniet un pārbaudiet API, izmantojot Postman, veicot pieprasījumus uz šo URL:
CI/CD cauruļvadu konfigurēšana, izmantojot GitHub darbības un Netlify
Izmantojot Netlify bezservera funkcijas, jūs varat izvietot pilnvērtīgas tīmekļa lietojumprogrammas, kas Netlify ietver gan klienta puses, gan aizmugursistēmas funkcionalitāti.
Turklāt CI/CD konveijeru iestatīšana lietojumprogrammām ar GitHub Actions piedāvā racionalizētu pieeju izveides un izvietošanas procesa automatizēšanai. Tas ļauj definēt darbplūsmas, kas nodrošina netraucētu un uzticamu izstrādes procesu, sākot no idejas izstrādes un virzoties uz izlaišanas stadiju.