Postavite ovaj tijek rada za automatsku implementaciju svoje aplikacije u produkciju i pojednostavite svoj postupak izdavanja.

Netlify je platforma za web hosting i sveobuhvatan paket alata za implementaciju i upravljanje web aplikacijama u oblaku.

Ali njegove značajke proširuju se daleko dalje od toga — njegove funkcije bez poslužitelja omogućuju vam pokretanje koda na strani poslužitelja bez namjenskog poslužitelja.

Istražite kako postaviti CI/CD cjevovod za implementaciju Node.js REST API-ja na Netlifyu pomoću GitHub radnji.

CI/CD cjevovodi s GitHub radnjama: pregled

Cjevovodi kontinuirane integracije i kontinuirane isporuke (CI/CD) niz su sekvencijalnih, automatiziranih procesa kroz koje softverske aplikacije prolaze prije nego što se isporuče u proizvodnju.

Obično se CI/CD cjevovodi sastoje od nekoliko ključnih faza, uključujući faze izvora, izgradnje, testiranja i implementacije.

Iako je ove faze moguće izvesti ručno, njihova automatizacija nudi nekoliko prednosti, uključujući:

  • Minimiziranje rizika od ljudskih pogrešaka.
  • instagram viewer
  • Ubrzavanje procesa oslobađanja.
  • Osiguravanje dosljednog tijeka rada za isporuku kvalitetnog softvera u proizvodnju.

Što su GitHub akcije?

GitHub Actions je alat integriran unutar GitHuba koji pruža širok raspon unaprijed izgrađenih radnji koje možete koristiti za definiranje tijeka rada kao koda izravno u svom repozitoriju projekta za automatizaciju CI/CD-a cjevovodi.

Također možete kreirati prilagođene radnje koje odgovaraju vašim specifičnim projektnim potrebama, što vam omogućuje izradu i implementaciju aplikacija u proizvodnju bez muke. Jedna od prednosti GitHub Actions je njegova besprijekorna integracija s drugim GitHub značajkama, kao što su zahtjevi za povlačenjem i praćenje problema.

To omogućuje pokretanje tijekova rada na temelju određenih događaja, kao što je nova objava koja osigurava da se vaši CI/CD cjevovodi automatski pokreću kada je to potrebno.

Postavite projekt Node.js

Za početak morate stvoriti Express web poslužitelj. Da biste to učinili, kreirajte novu mapu lokalno i promijenite direktorij na svom terminalu.

mkdir express-netlify
cd express-netlify

Zatim stvorite a paket.json pomoću datoteke npm, upravitelj paketa čvora.

npm init -y

Na kraju instalirajte ovisnosti potrebne u projektu.

npm instalirajte express netlify-lambda serverless-http

The netlify-lambda paket služi kao lokalni razvojni poslužitelj koji olakšava testiranje funkcija bez poslužitelja. server-http pomaže u prilagodbi Express.js aplikacija formatu koji je kompatibilan s rukovateljima funkcijama bez poslužitelja.

Netlify ne pruža izvornu podršku za hosting i pokretanje potpunih backend aplikacija. Umjesto toga, nudi funkcije bez poslužitelja kao alternativno rješenje za rukovanje pozadinskom funkcionalnošću.

Ove funkcije upravljaju logikom na strani poslužitelja, obrađuju HTTP API zahtjeve i poslužuju dinamički sadržaj, pružajući funkcionalnost nalik pozadinskoj unutar paradigme bez poslužitelja.

Kôd ovog projekta možete pronaći u GitHub spremište.

Stvorite Express Web poslužitelj

Napravite tri mape: dist, funkcije, i src u korijenskom direktoriju mape vašeg projekta.

Prije nego što postavite Express poslužitelj, napravite prazninu index.html datoteka u dist mapa. Ova datoteka djeluje kao rezervirano mjesto koje omogućuje Netlifyju da uspješno implementira Express aplikaciju i služi API rutama.

Sada stvorite a src/app.js datoteku i dodajte sljedeći kod:

konst izraziti = zahtijevati("izraziti");
konst bez poslužitelja = zahtijevati("bez poslužitelja-http");

konst app = express();
konst ruter = express. Usmjerivač();

router.get("/", (req, res) => {
res.send("Pozdrav svijete!")
});

app.use(`/.netlify/functions/app`, usmjerivač);

modul.izvozi = aplikacija;
modul.exports.handler = bez poslužitelja (aplikacija);

Ovaj kod definira Express poslužitelj s jednom rutom za korijenski URL koji obrađuje GET zahtjeve. The app.use funkcija registrira posredni softver rute s aplikacijom Express, osiguravajući da svi HTTP zahtjevi upućeni putu /.netlify/functions/app usmjerivač će ispravno rukovati, čak i u proizvodnom okruženju.

Posljedično, ako dodate novu krajnju točku kao što je /api/auth, bit će mu dostupno na /.netlify/functions/app/api/auth. Na kraju, kod izvozi Express aplikaciju i funkciju rukovatelja bez poslužitelja.

To omogućuje lokalno testiranje poslužitelja i osigurava da ga možete postaviti kao funkciju bez poslužitelja na Netlify.

Definirajte datoteku Netlify.toml

U korijenskom direktoriju stvorite novi Netlify.toml datoteku i dodajte sljedeći kod.

[izgraditi]
baza = "/"
naredba = "npm pokrenuti izgradnju"
objavi = "/dist/"
funkcije = "funkcije/"
[build.environment]
NODE_VERSION = "16"
[funkcije]
vanjski_moduli_čvora = ["izraziti"]
node_bundler = "esbuild"
[[preusmjerava]]
sila = istina
iz = "/api/*"
status = 200
do = "/.netlify/functions/app/:splat"
[[preusmjerava]]
od = "/*"
status = 200
do = "/index.html"

Kod navodi konfiguracijske postavke izgradnje i implementacije za aplikaciju Express na Netlifyju. Uključuje postavke kao što su osnovni direktorij, naredba za izgradnju, direktorij za objavljivanje i direktorij funkcija.

Dodatno, definira postavke preusmjeravanja koje bi trebale upravljati usmjeravanjem HTTP API zahtjeva, osiguravajući da su pravilno usmjereni na Netlify funkcije bez poslužitelja.

Ažurirajte datoteku Package.json

Otvori paket.json datoteku i dodajte ove naredbe objektu skripti.

"skripte": {
"početak": "netlify-lambda serve src",
"izgraditi": "netlify-lambda build src"
},

Pokrenite sljedeće naredbe za izgradnju i pokretanje aplikacije lokalno.

npm pokrenuti izgradnju
npm pokrenuti početak

Poslužitelj će se pokrenuti na portu 9000. Možete ići naprijed i testirati API pomoću Postmana slanjem zahtjeva na http://localhost: 9000/.netlify/funkcije/app

Konačno, prije postavljanja tijeka rada GitHub Actions za automatizaciju implementacija na Netlifyju, stvoriti repozitorij na GitHubu, i gurnite datoteke projekta.

Postavite Express aplikaciju na Netlify

Prvo implementirajte API na Netlify prije konfiguriranja tijeka rada GitHub Actions. Slijedite ove korake za implementaciju aplikacije Express na Netlify.

  1. Prijeđite na Netlify i kreirajte račun i prijavite se na Pregled stranica.
  2. Odaberite i kliknite na Stranice tab.
  3. Klikni na Uvoz iz Gita gumb i odaberite GitHub kao Git platforma pružatelja usluga. Netlify će od vas tražiti da se autentifikujete s GitHubom kako biste mu odobrili pristup vašem računu i repozitoriju projekta.
  4. Odaberite repozitorij Express projekta s popisa prikazanih repozitorija.
  5. Nakon odabira repozitorija, trebate konfigurirati postavke izgradnje za proces postavljanja. Netlify pojednostavljuje ovaj proces automatskim otkrivanjem tehnologije koja se koristi za izradu aplikacije i unaprijed popunjava polja sa potrebnim postavkama izgradnje. U ovom slučaju, naredba za izgradnju, objavljivanje i direktorij funkcija.
  6. Na kraju kliknite na Postavite mjesto gumb za dovršetak postupka.

Stvorite tijek rada GitHub Actions

Klikni na Radnje u GitHub repozitoriju vašeg projekta. u Kontinuirana integracija odjeljak, odaberite i kliknite Konfigurirajte Node.js tijek rada.

U uređivaču GitHub preimenujte naziv datoteke u Netlify.yml, izbrišite predložak Node.js koda tijeka rada i dodajte kod u nastavku:

Ime:IzgraditiiRasporedidoNetlify
na:
gurnuti:
pull_request:
poslovi:
izgraditi:
trčanje:ubuntu-22.04
koraci:
-koristi:radnje/odjava@v3

# (Izgradite u ./dist ili drugi direktorij... )

-Ime:RasporedidoNetlify
koristi:nwtgck/[email protected]
s:
objavljivanje-dir:'./dist'
proizvodna grana:glavni
github-token:${{tajne. GITHUB_TOKEN}}
raspored-poruka:"Implementiraj iz GitHub radnji"
enable-pull-request-comment:lažno
enable-commit-comment:pravi
prepisuje-povuci-zahtjev-komentar:pravi
okruženje:
NETLIFY_AUTH_TOKEN:${{tajne. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{tajne. NETLIFY_SITE_ID}}
timeout-minutes:1

Ovdje je pregled svojstava tijeka rada:

  • na: Događaji koji pokreću radnje u ovom tijeku rada.
  • radnih mjesta: Određuje događaj koji bi određena radnja trebala pokrenuti, a to su: događaji izgradnje i postavljanja.
  • naletjeti: glavno proizvodno okruženje za akciju.
  • korake: Određuje niz koraka uključenih u obavljanje određenog posla.
  • s: Definira argumente potrebne da bi se radnje ispravno izvodile.
  • okruženje: specificira potrebne varijable okoline za tijek rada.

Na kraju, izvršite ažuriranja napravljena na ovoj datoteci. GitHub bi trebao automatski pokrenuti tijek rada.

Međutim, početna će izgradnja pokrenuti pogrešku budući da morate dodati tajne varijable koje zahtijeva tijek rada: postavljeni ID web-mjesta i Netlifyjev token za autentifikaciju. Prijeđi do svog Postavke stranice na Netlify i kopirajte ID stranice.

Da biste dobili token za autentifikaciju, kliknite korisnički profil ikonu i odaberite Korisničke postavke opciju iz padajućeg prozora. Na stranici s postavkama odaberite Prijave, i kliknite Novi pristupni token za generiranje vašeg autentifikacijskog tokena.

Dodajte dvije varijable okruženja kao NETLIFY_SITE_ID i NETLIFY_AUTH_TOKEN u odjeljke varijabli okruženja i tajne repozitorija u vašem GitHub repozitoriju. Nakon što napravite ove promjene, ponovno pokrenite tijek rada. Netlify će automatski implementirati sve naknadne promjene koje pritisnete pomoću ovog cjevovoda.

Samo naprijed i testirajte API pomoću Postmana slanjem zahtjeva na ovaj URL: /.netlify/functions/app.

Konfiguriranje CI/CD cjevovoda s GitHub radnjama i Netlifyjem

Korištenjem Netlifyjevih funkcija bez poslužitelja, možete implementirati potpune web aplikacije koje obuhvaćaju i klijentsku i pozadinsku funkcionalnost na Netlifyju.

Osim toga, postavljanje CI/CD cjevovoda za aplikacije s GitHub Actions nudi pojednostavljen pristup automatizaciji procesa izrade i implementacije. To vam omogućuje da definirate tijekove rada koji osiguravaju besprijekoran i pouzdan proces razvoja, počevši od ideje i napredovanja do faze izdavanja.