Node.js: Diegti naudojant GitHub Actions
Sužinokite, kaip diegti savo Node.js kodą naudojant GitHub Actions
👋 Sveiki atvykę į Stackhero dokumentaciją!
Stackhero siūlo paruoštą naudoti Node.js cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:
- Įdiekite savo programą per kelias sekundes su paprastu
git push.- Naudokite savo domeno vardą ir pasinaudokite automatiniu HTTPS sertifikatų konfigūravimu, kad padidintumėte saugumą.
- Mėgaukitės ramybe su automatinėmis atsarginėmis kopijomis, vieno paspaudimo atnaujinimais ir paprasta, skaidria bei prognozuojama kainodara.
- Gaukite optimalią veikimo ir tvirtą saugumą dėka privačios ir dedikuotos VM.
Taupykite laiką ir supaprastinkite savo gyvenimą: išbandyti Stackhero Node.js cloud hosting sprendimą užtrunka tik 5 minutes!
GitHub Actions leidžia automatizuoti užduotis, tokias kaip jūsų Node.js kodo diegimas į gamybos serverius. Šiame vadove mes parodysime, kaip saugiai ir patikimai diegti jūsų Node.js programą tiek bandomojoje, tiek gamybos aplinkoje naudojant GitHub Actions.
Rekomenduojame palaikyti dvi šakas: staging ir production. Kai kodas įkeliamas į šias šakas, jis automatiškai diegiamas atitinkamoje Stackhero paslaugoje.
Turėti bandomąją instanciją nėra privaloma. Galite sekti šį vadovą tik su gamybos instancija. Tačiau, norint užtikrinti sklandų diegimą ir įgyti pasitikėjimą prieš paleidžiant į gamybą, labai rekomenduojama palaikyti tiek bandomąją, tiek gamybos aplinką. Šis požiūris yra pramonės standartas, kuris gali padėti išvengti dažnų diegimo problemų.
Prieš pradėdami, įsitikinkite, kad turite GitHub paskyrą su saugykla, kurioje talpinamas jūsų kodas.
Node.js paslaugų kūrimas
Pirmiausia prisijunkite prie savo Stackhero valdymo skydelio ir sukurkite dvi Stackhero paslaugas: vieną bandomajai ir vieną gamybai. Aiškumo dėlei galite pavadinti šias paslaugas "Staging" ir "Production".
Dar neturite Stackhero paskyros? Galite ją sukurti vos per dvi minutes nemokamai ir nustatyti savo Node.js debesų paslaugas vos keliais paspaudimais.
Node.js paslaugų pavyzdys
SSH raktų konfigūravimas
SSH raktai leidžia GitHub Actions saugiai prisijungti prie jūsų Node.js paslaugos diegiant jūsų kodą. Šis žingsnis yra būtinas norint apsaugoti jūsų Stackhero paslaugas.
Savo kompiuteryje sugeneruokite naujus SSH raktus naudodami šią komandą:
ssh-keygen -C "" -f /tmp/ssh_key -N ""
Viešojo rakto nustatymas
Gaukite ką tik sugeneruotą viešąjį raktą vykdydami:
cat /tmp/ssh_key.pub
Tada, Stackhero valdymo skydelyje, pasirinkite savo gamybos Node.js paslaugą ir spustelėkite mygtuką Configure.
Gauti paslaugos nustatymus
Toliau:
- SSH viešieji raktai skyriuje spustelėkite Pridėti viešąjį raktą.
- Aprašymui įveskite
GitHub Action. - Raktui įklijuokite gautą viešąjį raktą.
Gauti paslaugos nustatymus
Privačiojo rakto nustatymas
Pereikite į GitHub svetainę ir atidarykite savo projekto saugyklą. Tada spustelėkite Settings ir pasirinkite Environments. Spustelėkite New environment.
GitHub aplinkų konfigūravimas
Įveskite "production" kaip Pavadinimą ir patvirtinkite savo veiksmą.
Aplinkos nustatymas
Spustelėkite mygtuką No restriction, tada pasirinkite Selected branches and tags.
Aplinkos apribojimų nustatymas
Dabar spustelėkite Add deployment branch or tag rule, įveskite "production" į Name pattern lauką ir spustelėkite Add rule.
Aplinkos šakos nustatymas
Aplinkos šakos nustatymas
Toliau, Environment secrets skyriuje spustelėkite Add secret.
Pridėti slaptą raktą
Gaukite sugeneruotą privatųjį raktą vykdydami:
cat /tmp/ssh_key
GitHub įveskite STACKHERO_SSH_PRIVATE_KEY kaip Pavadinimą ir įklijuokite savo privatųjį raktą į Reikšmės lauką.
SSH privataus rakto slaptumo nustatymas
Tada, Environment variables skyriuje spustelėkite Add variable.
Kintamųjų nustatymas
Įveskite STACKHERO_ENDPOINT kaip Pavadinimą ir įklijuokite savo Node.js paslaugos galinį tašką į Reikšmės lauką. Šį galinį tašką galite rasti savo Stackhero valdymo skydelyje.
Galinio taško kintamojo nustatymas
Jei pritaikėte savo paslaugos domeno vardą, naudokite pritaikytą versiją vietoj xxxxxx.stackhero-network.com.
Sugeneruotų raktų ištrynimas
Dėl saugumo priežasčių pašalinkite SSH raktus iš savo kompiuterio, kai juos nustatėte Stackhero ir GitHub:
rm /tmp/ssh_key /tmp/ssh_key.pub
GitHub Actions darbo eigos konfigūravimas
Savo Git saugykloje sukurkite katalogą pavadinimu .github/workflows ir pridėkite failą pavadinimu deploy-to-stackhero.yml.
# Failas: .github/workflows/deploy-to-stackhero.yml
name: Deploy to Stackhero
run-name: Deploy branch "${{ github.ref_name }}" to Stackhero
on:
push:
# Šakų sąrašas, kurios sukelia diegimo veiksmą. Įsitikinkite, kad GitHub (po "Settings" > "Environments") yra aplinka kiekvienai šakai.
# Tada pridėkite atitinkamą slaptą raktą STACKHERO_SSH_PRIVATE_KEY ir kintamąjį STACKHERO_ENDPOINT toje aplinkoje.
branches: [ "production", "staging" ]
jobs:
Deploy:
environment: ${{ github.ref_name }}
runs-on: ubuntu-latest
steps:
- uses: stackhero-io/github-actions-deploy-to-stackhero@v1
with:
# STACKHERO_SSH_PRIVATE_KEY ir STACKHERO_ENDPOINT turi būti nustatyti atitinkamoje GitHub aplinkoje.
ssh_private_key: ${{ secrets.STACKHERO_SSH_PRIVATE_KEY }}
endpoint: ${{ vars.STACKHERO_ENDPOINT }}
Sukūrę darbo eigos failą, įsipareigokite savo pakeitimus naudodami šias komandas:
git add -A .
git commit -m "Pridėti GitHub Actions diegti į Stackhero"
Sukurkite gamybos šaką su:
git checkout -b production
Galiausiai, įkelkite savo pakeitimus į GitHub:
git push --set-upstream origin production
Šis įkėlimas siunčia jūsų kodą į production šaką ir sukelia GitHub Actions diegti jūsų kodą į Stackhero paslaugą. Norėdami patikrinti diegimą, eikite į savo projektą GitHub ir spustelėkite Actions.
GitHub Actions, kuris diegė į gamybą
Sveikiname! Jūsų kodas dabar nustatytas automatiniam diegimui į gamybą per GitHub Actions.
Bandomosios aplinkos kūrimas
Bandomosios aplinkos nustatymas yra panašus į gamybos aplinkos nustatymą. Pakartokite aukščiau nurodytus veiksmus, prireikus pakeisdami production į staging.
Pradėkite kurdami bandomąją šaką su:
git checkout -b staging
Tada įkelkite savo bandomąją šaką į GitHub:
git push --set-upstream origin staging
GitHub Actions automatiškai diegs jūsų bandomąją šaką į paskirtą Node.js paslaugą.
Toliau
Rekomenduojama apsaugoti production ir staging šakas, kad būtų išvengta tiesioginių įkėlimų. Vietoj to, sukurkite pull request bandomajai šakai ir sujunkite pakeitimus iš savo kūrimo šakos. Kai patvirtinsite pakeitimus bandomojoje platformoje, sujunkite pull request į production šaką.
Šis požiūris padeda užtikrinti, kad tik įgalioti asmenys gali įkelti į bandomąją ir gamybos aplinką. Tai taip pat užtikrina, kad naujos funkcijos būtų kruopščiai išbandytos prieš paleidžiant į gamybą.