Node.js: Diegimas 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 lengvai automatizuoti užduotis, tokias kaip jūsų Node.js kodo diegimas į produkcinius serverius. Šiame vadove paaiškinsime, kaip saugiai ir patikimai diegti savo Node.js aplikaciją tiek į „staging“, tiek į „production“ aplinkas naudojant GitHub Actions.
Rekomenduojame palaikyti dvi šakas: staging ir production. Kai įkeliate kodą į bet kurią iš šių šakų, jūsų pakeitimai automatiškai įdiegiami atitinkamame Stackhero paslaugoje.
Turėti „staging“ instanciją yra neprivaloma. Šį vadovą galite sekti naudodami tik „production“ instanciją. Tačiau, norint sklandžiau vykdyti diegimus ir užtikrinti pasitikėjimą prieš paleidžiant į produkciją, labai rekomenduojama palaikyti tiek „staging“, tiek „production“ aplinkas. Šis metodas plačiai taikomas pramonėje ir padeda išvengti dažnų diegimo problemų.
Prieš pradėdami, įsitikinkite, kad turite GitHub paskyrą ir Node.js kodo saugyklą (repository).
Node.js paslaugų kūrimas
Pirmiausia prisijunkite prie savo Stackhero valdymo skydelio ir sukurkite dvi Stackhero paslaugas: vieną „staging“, kitą – „production“. Aiškumo dėlei šias paslaugas galite pavadinti „Staging“ ir „Production“.
Jei dar neturite Stackhero paskyros, ją galite susikurti nemokamai vos per dvi minutes ir keliais paspaudimais paruošti savo Node.js cloud paslaugas.
Node.js paslaugų pavyzdys
SSH raktų konfigūravimas
SSH raktai leidžia GitHub Actions saugiai prisijungti prie jūsų Node.js paslaugos diegiant kodą. Tai itin svarbus žingsnis siekiant apsaugoti jūsų Stackhero paslaugas.
Savo kompiuteryje galite sugeneruoti naujus SSH raktus naudodami:
ssh-keygen -C "" -f /tmp/ssh_key -N ""
Viešojo rakto nustatymas
Norėdami peržiūrėti ką tik sukurtą viešąjį raktą, vykdykite:
cat /tmp/ssh_key.pub
Tada Stackhero valdymo skydelyje pasirinkite savo „production“ Node.js paslaugą ir spauskite Configure.
Paslaugos nustatymų gavimas
Toliau atlikite šiuos veiksmus:
- Skiltyje SSH public keys spauskite Add a public key.
- Laukelyje Description įrašykite
GitHub Action. - Laukelyje Key įklijuokite anksčiau nukopijuotą viešąjį raktą.
Paslaugos nustatymų gavimas
Privačiojo rakto nustatymas
Dabar pereikite į GitHub ir atidarykite savo projekto saugyklą. Spauskite Settings, tada pasirinkite Environments. Pasirinkite New environment.
GitHub aplinkų konfigūravimas
Laukelyje Name įrašykite „production“ ir patvirtinkite.
Aplinkos nustatymas
Spauskite No restriction, tada pasirinkite Selected branches and tags.
Aplinkos apribojimų nustatymas
Spauskite Add deployment branch or tag rule, laukelyje Name pattern įrašykite „production“ ir spauskite Add rule.
Aplinkos šakos nustatymas
Aplinkos šakos nustatymas
Skiltyje Environment secrets spauskite Add secret.
Slapto rakto pridėjimas
Norėdami gauti sugeneruotą privatų raktą, vykdykite:
cat /tmp/ssh_key
GitHub naudokite STACKHERO_SSH_PRIVATE_KEY kaip Name ir įklijuokite savo privatų raktą į Value lauką.
SSH privataus rakto slapto pridėjimas
Tada skiltyje Environment variables spauskite Add variable.
Kintamųjų nustatymas
Įrašykite STACKHERO_ENDPOINT kaip Name ir įklijuokite savo Node.js paslaugos endpoint'ą į Value lauką. Endpoint'ą rasite Stackhero valdymo skydelyje.
Endpoint kintamojo nustatymas
Jei savo paslaugai nustatėte individualų domeno vardą, naudokite jį vietoje <XXXXXX>.stackhero-network.com.
Sugeneruotų raktų ištrynimas
Saugumo sumetimais rekomenduojama ištrinti SSH raktus iš savo kompiuterio, kai jie jau nustatyti Stackhero ir GitHub:
rm /tmp/ssh_key /tmp/ssh_key.pub
GitHub Actions darbo eigos konfigūravimas
Savo Git saugykloje sukurkite katalogą .github/workflows, jei jis dar neegzistuoja. Tada pridėkite failą pavadinimu deploy-to-stackhero.yml:
# File: .github/workflows/deploy-to-stackhero.yml
name: Deploy to Stackhero
run-name: Deploy branch "${{ github.ref_name }}" to Stackhero
on:
push:
# Nurodykite šakas, kurios paleidžia diegimo veiksmą. Įsitikinkite, kad kiekvienai šakai GitHub ("Settings" > "Environments") yra sukurta aplinka.
# Tada toje aplinkoje pridėkite atitinkamą slaptą STACKHERO_SSH_PRIVATE_KEY ir kintamąjį STACKHERO_ENDPOINT.
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 }}
Kai sukursite darbo eigos failą, galite įkelti pakeitimus taip:
git add -A .
git commit -m "Pridėti GitHub Actions diegimui į Stackhero"
Norėdami sukurti „production“ šaką, vykdykite:
git checkout -b production
Tada įkelkite pakeitimus į GitHub:
git push --set-upstream origin production
Šis įkėlimas nusiųs jūsų kodą į production šaką ir paleis GitHub Actions, kad kodas būtų įdiegtas Stackhero paslaugoje. Norėdami patikrinti diegimą, atidarykite savo projektą GitHub ir spauskite Actions.
GitHub Actions, kurios įdiegė į production
Viskas. Jūsų kodas dabar paruoštas automatiniam diegimui į produkciją per GitHub Actions.
„Staging“ aplinkos kūrimas
„Staging“ aplinkos paruošimas beveik identiškas kaip ir „production“. Tiesiog pakartokite aukščiau aprašytus veiksmus, kai reikia, vietoje production naudodami staging.
Pradėkite sukurdami „staging“ šaką:
git checkout -b staging
Tada įkelkite „staging“ šaką į GitHub:
git push --set-upstream origin staging
GitHub Actions automatiškai įdiegs jūsų staging šaką į jai skirtą Node.js paslaugą.
Papildomos rekomendacijos
Rekomenduojama apsaugoti production ir staging šakas, kad būtų išvengta tiesioginių įkėlimų (push). Vietoje to, galite sukurti pull request į „staging“ šaką ir sujungti pakeitimus iš savo vystymo (development) šakos. Patvirtinę pakeitimus „staging“ platformoje, sujunkite pull request į production šaką.
Toks darbo procesas užtikrina, kad tik įgalioti bendradarbiai gali įkelti į „staging“ ir „production“ šakas, ir suteikia papildomą testavimo etapą prieš naujų funkcijų paleidimą į produkciją.