Nustatykite šią darbo eigą, kad automatiškai įdiegtumėte programą gamybinėje versijoje ir supaprastintumėte išleidimo procesą.
„Netlify“ yra žiniatinklio prieglobos platforma ir išsamus įrankių rinkinys, skirtas žiniatinklio programoms įdiegti ir valdyti debesyje.
Tačiau jo funkcijos apima daug daugiau – jos funkcijos be serverio leidžia paleisti serverio kodą be dedikuoto serverio.
Sužinokite, kaip nustatyti CI / CD dujotiekį, kad būtų galima įdiegti Node.js REST API sistemoje „Netlify“, naudojant „GitHub Actions“.
CI / CD vamzdynai su „GitHub“ veiksmais: apžvalga
Nepertraukiamo integravimo ir nenutrūkstamo pristatymo (CI/CD) vamzdynai yra nuoseklių automatizuotų procesų, kuriuos programinės įrangos taikomosios programos atlieka prieš išsiunčiant į gamybą, serija.
Paprastai CI / CD vamzdynai susideda iš kelių pagrindinių etapų, įskaitant šaltinio, kūrimo, testavimo ir diegimo fazes.
Nors šias fazes galima atlikti rankiniu būdu, jų automatizavimas suteikia keletą privalumų, įskaitant:
- Sumažinti žmogiškųjų klaidų riziką.
- Paspartinti išleidimo procesą.
- Nuoseklios darbo eigos užtikrinimas kokybiškos programinės įrangos pristatymui į gamybą.
Kas yra „GitHub“ veiksmai?
„GitHub Actions“ yra į „GitHub“ integruotas įrankis, teikiantis platų iš anksto sukurtų veiksmų spektrą. galite naudoti norėdami apibrėžti darbo eigas kaip kodą tiesiogiai savo projekto saugykloje, kad automatizuotume CI / CD vamzdynai.
Taip pat galite kurti pasirinktinius veiksmus, kad atitiktų jūsų konkrečius projekto poreikius, kad galėtumėte be vargo kurti ir įdiegti taikomąsias programas. Vienas iš „GitHub Actions“ pranašumų yra sklandus integravimas su kitomis „GitHub“ funkcijomis, tokiomis kaip ištraukimo užklausos ir problemų stebėjimas.
Tai leidžia suaktyvinti darbo eigas, pagrįstas konkrečiais įvykiais, pvz., nauju įsipareigojimu, užtikrinančiu, kad jūsų CI / CD konvejeriai būtų automatiškai suaktyvinti, kai reikia.
Nustatykite Node.js projektą
Norėdami pradėti, turite sukurti „Express“ žiniatinklio serveris. Norėdami tai padaryti, sukurkite naują aplanką vietoje ir pakeiskite savo terminalo katalogą.
mkdir express-netlify
cd express-netlify
Tada sukurkite a package.json failą naudojant npm, mazgo paketų tvarkyklė.
npm init -y
Galiausiai įdiekite projekte reikalingas priklausomybes.
npm įdiegti express netlify-lambda serverless-http
The netlify-lambda paketas tarnauja kaip vietinis kūrimo serveris, palengvinantis funkcijų be serverio testavimą. be serverio-http padeda pritaikyti Express.js programas prie formato, suderinamo su funkcijų tvarkytuvais be serverio.
„Netlify“ neteikia vietinio palaikymo prieglobai ir visavertėms vidinėms programoms paleisti. Vietoj to, jis siūlo funkcijas be serverių kaip alternatyvų sprendimą tvarkyti užpakalinės sistemos funkcijas.
Šios funkcijos valdo serverio logiką, tvarko HTTP API užklausas ir aptarnauja dinaminį turinį, suteikdamos į bazinę sistemą panašias funkcijas be serverio paradigmoje.
Šio projekto kodą galite rasti jame GitHub saugykla.
Sukurkite „Express Web Server“.
Sukurkite tris aplankus: raj, funkcijas, ir src projekto aplanko šakniniame kataloge.
Prieš nustatydami „Express“ serverį, sukurkite tuščią laukelį index.html failą raj aplanką. Šis failas veikia kaip rezervuota vieta, leidžianti „Netlify“ sėkmingai įdiegti „Express“ programą ir aptarnauti API maršrutus.
Dabar sukurkite a src/app.js failą ir pridėkite šį kodą:
konst išreikšti = reikalauti("išreikšti");
konst be serverio = reikalauti("be serverio-http");konst programa = express ();
konst maršrutizatorius = greitasis. Maršrutizatorius ();router.get("/", (req, res) => {
res.send("Labas pasauli!")
});app.use(„/.netlify/functions/app“., maršrutizatorius);
modulis.exports = programa;
modulis.exports.handler = be serverio (programėlė);
Šis kodas apibrėžia Express serverį su vienu šakninio URL maršrutu, kuris apdoroja GET užklausas. The app.use funkcija registruoja maršruto tarpinę programinę įrangą „Express“ programoje, užtikrindama, kad visos HTTP užklausos būtų pateiktos kelyje
Todėl, jei pridėsite naują galinį tašką, pvz /api/auth, jis bus pasiekiamas
Tai leidžia atlikti vietinį serverio testavimą ir užtikrina, kad galite jį įdiegti kaip funkciją be serverio „Netlify“.
Apibrėžkite Netlify.toml failą
Šakniniame kataloge sukurkite naują Netlify.toml failą ir pridėkite šį kodą.
[statyti]
bazė = "/"
komanda = "npm run build"
publikuoti = "/dist/"
funkcijos = "funkcijos/"
[build.environment]
NODE_VERSION = "16"
[funkcijos]
išorinis_mazgas_moduliai = ["išreikšti"]
node_bundler = "esbuild"
[[peradresuoja]]
jėga = tiesa
iš = "/api/*"
būsena = 200
to = "/.netlify/functions/app/:splat"
[[peradresuoja]]
iš = "/*"
būsena = 200
į = "/index.html"
Kodas nurodo „Express“ programos „Netlify“ kūrimo ir diegimo konfigūracijos nustatymus. Tai apima tokius nustatymus kaip bazinis katalogas, kūrimo komanda, publikavimo katalogas ir funkcijų katalogas.
Be to, jis apibrėžia peradresavimo nustatymus, kurie turėtų valdyti HTTP API užklausų nukreipimą, užtikrinant, kad jos būtų tinkamai nukreiptos į „Netlify“ funkcijas be serverio.
Atnaujinkite failą Package.json
Atidaryk package.json failą ir pridėkite šias komandas prie scenarijų objekto.
"scenarijai": {
"pradėti": "netlify-lambda serve src",
"statyti": "netlify-lambda build src"
},
Vykdykite šias komandas, kad sukurtumėte ir paleistumėte programą vietoje.
npm paleisti statyti
npm paleisties pradžia
Serveris pradės veikti nuo 9000 prievado. Galite eiti į priekį ir išbandyti API naudodami „Postman“, pateikdami užklausas http://localhost: 9000/.netlify/functions/app
Galiausiai, prieš nustatydami „GitHub Actions“ darbo eigą, kad būtų galima automatizuoti diegimą „Netlify“, sukurti saugyklą „GitHub“.ir stumkite projekto failus.
Įdiekite „Express“ programą „Netlify“.
Pirmiausia, prieš konfigūruodami „GitHub Actions“ darbo eigą, įdiekite API „Netlify“. Atlikite šiuos veiksmus, kad įdiegtumėte „Express“ programą „Netlify“.
- Eikite į Netlify ir susikurkite paskyrą bei prisijunkite prie Apžvalga puslapį.
- Pasirinkite ir spustelėkite Svetainės skirtuką.
- Spustelėkite ant Importuoti iš Git mygtuką ir pasirinkite GitHub kaip Git teikėjo platforma. „Netlify“ paragins jus autentifikuoti „GitHub“, kad suteiktumėte prieigą prie jūsų paskyros ir projekto saugyklų.
- Rodomų saugyklų sąraše pasirinkite Express projekto saugyklą.
- Pasirinkę saugyklą, turite sukonfigūruoti diegimo proceso kūrimo parametrus. „Netlify“ supaprastina šį procesą, automatiškai aptikdama technologiją, naudojamą kuriant programą, ir iš anksto užpildo laukus reikiamais kūrimo parametrais. Šiuo atveju kūrimo komanda, paskelbimas ir funkcijų katalogas.
- Galiausiai spustelėkite Įdiegti svetainę mygtuką, kad užbaigtumėte procesą.
Sukurkite „GitHub“ veiksmų darbo eigą
Spustelėkite ant Veiksmai skirtuką savo projekto „GitHub“ saugykloje. Viduje Nuolatinė integracija skyrių, pasirinkite ir spustelėkite Konfigūruokite Node.js darbo eiga.
„GitHub“ rengyklėje pervardykite failo pavadinimą į Netlify.yml, ištrinkite pagrindinį Node.js darbo eigos kodą ir pridėkite kodą toliau:
vardas:SukurtiirDislokuotiįNetlify
ant:
stumti:
pull_request:
darbai:
statyti:
bėgimas:ubuntu-22.04
žingsniai:
-naudoja:action/checkout@v3# ( Sukurti į ./dist arba kitą katalogą... )
-vardas:DislokuotiįNetlify
naudoja:nwtgck/[email protected]
su:
publikuoti-vad.:'./dist'
gamybos filialas:pagrindinis
github-žetonas:${{paslapčių. GITHUB_TOKEN}}
diegimo pranešimas:„Deploy from GitHub Actions“
Įgalinti-ištraukti-užklausti-komentuoti:klaidinga
Įgalinti-įsipareigoti-komentuoti:tiesa
perrašo-pull-request-comment:tiesa
env:
NETLIFY_AUTH_TOKEN:${{paslapčių. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{paslapčių. NETLIFY_SITE_ID}}
laiko pabaigos minutės:1
Čia pateikiamas darbo eigos ypatybių suskirstymas:
- įjungta: įvykiai, suaktyvinantys šios darbo eigos veiksmus.
- darbo vietų: Nurodo įvykį, kurį turi vykdyti tam tikras veiksmas: kūrimo ir diegimo įvykiai.
- bėga: pagrindinė veiksmo gamybos aplinka.
- žingsniai: nurodo tam tikros užduoties atlikimo veiksmų seką.
- su: apibrėžia argumentus, reikalingus, kad veiksmai tinkamai veiktų.
- env: nurodo būtinus darbo eigos aplinkos kintamuosius.
Galiausiai patvirtinkite šio failo atnaujinimus. „GitHub“ turėtų automatiškai suaktyvinti darbo eigą.
Tačiau pradinis kūrimas sukels klaidą, nes turite pridėti slaptus kintamuosius, kurių reikia darbo eigai: įdiegtos svetainės ID ir „Netlify“ autentifikavimo prieigos raktą. Eikite į savo Svetainės nustatymai „Netlify“ ir nukopijuokite Svetainės ID.
Norėdami gauti autentifikavimo prieigos raktą, spustelėkite vartotojo profilis piktogramą ir pasirinkite Vartotojo nustatymai parinktį iš išskleidžiamojo lango. Nustatymų puslapyje pasirinkite Programosir spustelėkite Naujas prieigos raktas kad sugeneruotumėte autentifikavimo prieigos raktą.
Pridėkite du aplinkos kintamuosius kaip NETLIFY_SITE_ID ir NETLIFY_AUTH_TOKEN prie aplinkos kintamųjų ir saugyklos paslapčių skilčių „GitHub“ saugykloje. Atlikę šiuos pakeitimus, iš naujo paleiskite darbo eigą. „Netlify“ automatiškai įdiegs visus vėlesnius pakeitimus, kuriuos stumsite naudodami šį dujotiekį.
Eikite į priekį ir išbandykite API naudodami „Postman“, pateikdami užklausas šiuo URL:
CI / CD konfigūravimas naudojant „GitHub Actions“ ir „Netlify“.
Naudodami „Netlify“ funkcijas be serverių, „Netlify“ galite įdiegti visavertes žiniatinklio programas, kurios apima ir kliento, ir užpakalinės sistemos funkcijas.
Be to, nustatant CI / CD konvejerius programoms naudojant „GitHub Actions“, galima supaprastinti kūrimo ir diegimo proceso automatizavimą. Tai leidžia apibrėžti darbo eigas, užtikrinančias sklandų ir patikimą kūrimo procesą, pradedant nuo idėjos ir pereinant iki išleidimo etapo.