Node.js: Implementeren met GitHub Actions

Leer hoe u uw Node.js-code implementeert met behulp van GitHub Actions

👋 Welkom bij de documentatie van Stackhero!

Stackhero biedt een kant-en-klare Node.js cloud oplossing die tal van voordelen biedt, waaronder:

  • Implementeer uw applicatie in seconden met een eenvoudige git push.
  • Gebruik uw eigen domeinnaam en profiteer van de automatische configuratie van HTTPS-certificaten voor verbeterde beveiliging.
  • Geniet van gemoedsrust met automatische back-ups, updates met één klik, en eenvoudige, transparante en voorspelbare prijzen.
  • Krijg optimale prestaties en robuuste beveiliging dankzij een privé en dedicated VM.

Bespaar tijd en vereenvoudig uw leven: het kost slechts 5 minuten om de Node.js cloud hosting oplossing van Stackhero te proberen!

GitHub Actions stelt u in staat om taken te automatiseren, zoals het implementeren van uw Node.js-code naar productie-servers. In deze gids begeleiden we u bij het veilig en betrouwbaar implementeren van uw Node.js-applicatie naar zowel staging- als productieomgevingen met behulp van GitHub Actions.

We raden aan om twee branches te onderhouden: staging en production. Wanneer code naar deze branches wordt gepusht, wordt deze automatisch geïmplementeerd naar de overeenkomstige Stackhero-service.

Het hebben van een staging-instantie is niet verplicht. U kunt deze gids volgen met slechts een productie-instantie. Echter, om soepele implementaties te garanderen en vertrouwen op te bouwen voordat u live gaat, wordt sterk aanbevolen om zowel staging- als productieomgevingen te onderhouden. Deze aanpak is een industriestandaard die kan helpen om veelvoorkomende implementatieproblemen te voorkomen.

Voordat u begint, zorg ervoor dat u een GitHub-account heeft met een repository die uw code host.

Log eerst in op uw Stackhero-dashboard en maak twee Stackhero-services aan: één voor staging en één voor productie. Voor de duidelijkheid kunt u deze services "Staging" en "Production" noemen.

Heeft u nog geen Stackhero-account? U kunt er binnen twee minuten gratis een aanmaken en uw Node.js-cloudservices in slechts een paar klikken instellen.

Voorbeeld van Node.js-servicesVoorbeeld van Node.js-services

SSH-sleutels stellen GitHub Actions in staat om veilig verbinding te maken met uw Node.js-service bij het implementeren van uw code. Deze stap is essentieel voor het beschermen van uw Stackhero-services.

Genereer op uw computer nieuwe SSH-sleutels met dit commando:

ssh-keygen -C "" -f /tmp/ssh_key -N ""

Haal de openbare sleutel op die u zojuist hebt gegenereerd door het volgende uit te voeren:

cat /tmp/ssh_key.pub

Selecteer vervolgens in het Stackhero-dashboard uw productie-Node.js-service en klik op de knop Configureren.

Service-instellingen ophalenService-instellingen ophalen

Vervolgens:

  1. Klik in SSH openbare sleutels op Voeg een openbare sleutel toe.
  2. Voer voor Beschrijving GitHub Action in.
  3. Plak voor Sleutel de openbare sleutel die u hebt opgehaald.

Service-instellingen ophalenService-instellingen ophalen

Ga naar de GitHub-website en open uw projectrepository. Klik vervolgens op Instellingen en selecteer Omgevingen. Klik op Nieuwe omgeving.

GitHub-omgevingen configurerenGitHub-omgevingen configureren

Voer "production" in voor de Naam en bevestig uw actie.

De omgeving instellenDe omgeving instellen

Klik op de knop Geen beperking, kies vervolgens Geselecteerde branches en tags.

Omgevingsbeperkingen instellenOmgevingsbeperkingen instellen

Klik nu op Voeg implementatiebranch- of tagregel toe, voer "production" in het veld Naam patroon in en klik op Regel toevoegen.

Omgevingsbranch instellenOmgevingsbranch instellen

Omgevingsbranch instellenOmgevingsbranch instellen

Klik vervolgens in Omgevingsgeheimen op Voeg geheim toe.

Geheim toevoegenGeheim toevoegen

Haal de privésleutel op die u hebt gegenereerd door het volgende uit te voeren:

cat /tmp/ssh_key

Voer in GitHub STACKHERO_SSH_PRIVATE_KEY in als de Naam en plak uw privésleutel in het veld Waarde.

De SSH-privesleutel geheim instellenDe SSH-privesleutel geheim instellen

Klik vervolgens in Omgevingsvariabelen op Voeg variabele toe.

Variabelen instellenVariabelen instellen

Voer STACKHERO_ENDPOINT in als de Naam en plak uw Node.js-service-eindpunt in het veld Waarde. U kunt dit eindpunt vinden in uw Stackhero-dashboard.

Het eindpunt variabele instellenHet eindpunt variabele instellen

Als u uw servicedomeinnaam hebt aangepast, gebruik dan de aangepaste versie in plaats van xxxxxx.stackhero-network.com.

Verwijder om veiligheidsredenen de SSH-sleutels van uw computer zodra u ze hebt ingesteld op Stackhero en GitHub:

rm /tmp/ssh_key /tmp/ssh_key.pub

Maak binnen uw Git-repository een directory genaamd .github/workflows en voeg een bestand toe genaamd deploy-to-stackhero.yml.

# Bestand: .github/workflows/deploy-to-stackhero.yml

name: Deploy to Stackhero
run-name: Deploy branch "${{ github.ref_name }}" to Stackhero

on:
  push:
    # Lijst van branches die de implementatieactie activeren. Zorg ervoor dat er een omgeving bestaat in GitHub (onder "Instellingen" > "Omgevingen") voor elke branch.
    # Voeg vervolgens het overeenkomstige geheim STACKHERO_SSH_PRIVATE_KEY en de variabele STACKHERO_ENDPOINT toe in die omgeving.
    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 en STACKHERO_ENDPOINT moeten worden ingesteld in de respectieve GitHub-omgeving.
        ssh_private_key: ${{ secrets.STACKHERO_SSH_PRIVATE_KEY }}
        endpoint: ${{ vars.STACKHERO_ENDPOINT }}

Nadat u het workflowbestand hebt gemaakt, commit uw wijzigingen met de volgende commando's:

git add -A .
git commit -m "Voeg GitHub Actions toe om naar Stackhero te implementeren"

Maak een productiebranch met:

git checkout -b production

Duw ten slotte uw wijzigingen naar GitHub:

git push --set-upstream origin production

Deze push stuurt uw code naar de production branch en activeert GitHub Actions om uw code naar de Stackhero-service te implementeren. Om de implementatie te verifiëren, navigeert u naar uw project op GitHub en klikt u op Acties.

GitHub Actions die naar productie heeft geïmplementeerdGitHub Actions die naar productie heeft geïmplementeerd

Gefeliciteerd! Uw code is nu ingesteld voor automatische implementatie naar productie via GitHub Actions.

Het instellen van de staging-omgeving is vergelijkbaar met de productieomgeving. Herhaal de bovenstaande stappen, waarbij u production vervangt door staging indien nodig.

Begin met het maken van een staging-branch met:

git checkout -b staging

Duw vervolgens uw staging-branch naar GitHub:

git push --set-upstream origin staging

GitHub Actions implementeert automatisch uw staging-branch naar de aangewezen Node.js-service.

Het is een goede gewoonte om de production en staging branches te beschermen om directe pushes te vermijden. Maak in plaats daarvan een pull request voor de staging-branch en voeg wijzigingen samen vanuit uw ontwikkelbranch. Zodra u de wijzigingen op het staging-platform hebt gevalideerd, voegt u de pull request samen in de production branch.

Deze aanpak helpt ervoor te zorgen dat alleen geautoriseerde personen naar staging en productie kunnen pushen. Het zorgt er ook voor dat nieuwe functies grondig worden getest voordat ze live gaan.