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.
Node.js-services maken
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-services
SSH-sleutels configureren
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 ""
De openbare sleutel instellen
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 ophalen
Vervolgens:
- Klik in SSH openbare sleutels op Voeg een openbare sleutel toe.
- Voer voor Beschrijving
GitHub Actionin. - Plak voor Sleutel de openbare sleutel die u hebt opgehaald.
Service-instellingen ophalen
De privésleutel instellen
Ga naar de GitHub-website en open uw projectrepository. Klik vervolgens op Instellingen en selecteer Omgevingen. Klik op Nieuwe omgeving.
GitHub-omgevingen configureren
Voer "production" in voor de Naam en bevestig uw actie.
De omgeving instellen
Klik op de knop Geen beperking, kies vervolgens Geselecteerde branches en tags.
Omgevingsbeperkingen instellen
Klik nu op Voeg implementatiebranch- of tagregel toe, voer "production" in het veld Naam patroon in en klik op Regel toevoegen.
Omgevingsbranch instellen
Omgevingsbranch instellen
Klik vervolgens in Omgevingsgeheimen op Voeg geheim toe.
Geheim 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 instellen
Klik vervolgens in Omgevingsvariabelen op Voeg variabele toe.
Variabelen 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 instellen
Als u uw servicedomeinnaam hebt aangepast, gebruik dan de aangepaste versie in plaats van xxxxxx.stackhero-network.com.
De gegenereerde sleutels verwijderen
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
De GitHub Actions-workflow configureren
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ïmplementeerd
Gefeliciteerd! Uw code is nu ingesteld voor automatische implementatie naar productie via GitHub Actions.
De staging-omgeving maken
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.
Verder gaan
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.