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.

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ų pavyzdysNode.js paslaugų pavyzdys

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 ""

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 nustatymusGauti paslaugos nustatymus

Toliau:

  1. SSH viešieji raktai skyriuje spustelėkite Pridėti viešąjį raktą.
  2. Aprašymui įveskite GitHub Action.
  3. Raktui įklijuokite gautą viešąjį raktą.

Gauti paslaugos nustatymusGauti paslaugos nustatymus

Pereikite į GitHub svetainę ir atidarykite savo projekto saugyklą. Tada spustelėkite Settings ir pasirinkite Environments. Spustelėkite New environment.

GitHub aplinkų konfigūravimasGitHub aplinkų konfigūravimas

Įveskite "production" kaip Pavadinimą ir patvirtinkite savo veiksmą.

Aplinkos nustatymasAplinkos nustatymas

Spustelėkite mygtuką No restriction, tada pasirinkite Selected branches and tags.

Aplinkos apribojimų nustatymasAplinkos apribojimų nustatymas

Dabar spustelėkite Add deployment branch or tag rule, įveskite "production" į Name pattern lauką ir spustelėkite Add rule.

Aplinkos šakos nustatymasAplinkos šakos nustatymas

Aplinkos šakos nustatymasAplinkos šakos nustatymas

Toliau, Environment secrets skyriuje spustelėkite Add secret.

Pridėti slaptą raktą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 nustatymasSSH privataus rakto slaptumo nustatymas

Tada, Environment variables skyriuje spustelėkite Add variable.

Kintamųjų nustatymasKintamų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 nustatymasGalinio taško kintamojo nustatymas

Jei pritaikėte savo paslaugos domeno vardą, naudokite pritaikytą versiją vietoj xxxxxx.stackhero-network.com.

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

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ąGitHub Actions, kuris diegė į gamybą

Sveikiname! Jūsų kodas dabar nustatytas automatiniam diegimui į gamybą per GitHub Actions.

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ą.

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ą.