CI/CD med GitHub Actions og DevOps-pipelines · leksjon

Distribuere til et stagingmiljø

Sett opp en arbeidsflyt som automatisk distribuerer applikasjonen til et stagingmiljø for testing før produksjonssetting.

Leksjon 2 av 411 trinn

Distribuere til et stagingmiljø er en gratis leksjon i CI/CD med GitHub Actions og DevOps-pipelines på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i CI/CD med GitHub Actions og DevOps-pipelines, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i CI/CD med GitHub Actions og DevOps-pipelines inneholder totalt 4 leksjoner.

Hva er et stagingmiljø?

Se for deg at du har bygget en ny funksjon i appen din. Før du viser den til alle i produksjon, vil du teste den i et trygt og realistisk miljø. Det er her et stagingmiljø kommer inn!

Et stagingmiljø er en kopi av produksjonsmiljøet. Det brukes til den avsluttende testingen før en utgivelse, slik at du kan oppdage problemer og sikre kvalitet uten å påvirke aktive brukere.

Staging kontra produksjon

Selv om staging gjenspeiler produksjon, har miljøene ulike formål:

  • Staging: Brukes til kvalitetssikring (QA), brukerakseptansetesting (UAT) og avsluttende kontroller. Bare en begrenset målgruppe (testere og interessenter) bruker miljøet.
  • Produksjon: Det aktive miljøet som brukes av alle sluttbrukerne dine. Eventuelle problemer her påvirker kundene dine direkte.

Å rulle ut til staging først er et viktig trinn for å minimere risikoen i produksjon.

Funksjonen GitHub Environments

GitHub Actions tilbyr en kraftig funksjon kalt Environments. Den lar deg definere logiske miljøer, for eksempel staging eller production, i repositoriet ditt.

Med miljøer kan du:

  • Bruke beskyttelsesregler (manuelle godkjenninger og ventetid).
  • Administrere miljøspesifikke secrets.
  • Følge med på utrullinger til bestemte miljøer.

Definere et stagingmiljø

For å bruke et miljø i arbeidsflyten må du først definere det i innstillingene for repositoriet:

  • Gå til GitHub-repositoriet ditt.
  • Klikk på Settings > Environments.
  • Klikk på New environment og gi det et navn, for eksempel staging.

Her kan du legge til beskyttelsesregler, for eksempel at en kontrollør må godkjenne utrullinger.

Grunnleggende struktur for en utrullingsarbeidsflyt

La oss nå se på hvordan du ber GitHub Actions rulle ut til staging-miljøet vårt. Du angir miljøet i en jobb:

name: Deploy to Staging

on: push

jobs:
  deploy-to-staging:
    runs-on: ubuntu-latest
    environment: staging # This links to your 'staging' environment
    steps:
      - name: Say Hello
        run: echo "Deploying to staging!"

Konfigurere miljøbeskyttelse

Linjen environment: staging i arbeidsflyten gjør mer enn å bare merke utrullingen. Hvis du har konfigurert beskyttelsesregler for staging-miljøet i innstillingene for repositoriet, brukes de automatisk.

Hvis du for eksempel krever manuell godkjenning, settes denne jobben på vent til en autorisert person har gjennomgått og godkjent utrullingen.

Bygge programmet ditt

Før utrulling må du vanligvis bygge programmet ditt. Det kan innebære å kompilere kode, kjøre tester eller pakke ressurser. Vi legger til disse trinnene i jobben:

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Node.js (Example build step)
        uses: actions/setup-node@v4
        with:
          node-version: '18'

      - name: Install dependencies
        run: npm ci

      - name: Build application
        run: npm run build

Rulle ut de bygde artefaktene

Etter byggingen er neste trinn å overføre programfilene dine til staging-serveren. Dette innebærer ofte SSH, FTP eller et skyt####-spesifikt verktøy for utrulling.

Her er et konseptuelt trinn. I en virkelig situasjon erstatter du echo med den faktiske kommandoen for utrulling:

      - name: Deploy to Staging Server
        run: |
          echo "Simulating deployment to staging..."
          # scp -r ./dist user@staging.example.com:/var/www/html
          # Or use a specific deployment action for AWS, Azure, etc.

Sette alt sammen: Staging-arbeidsflyt

Denne komplette arbeidsflyten utløses ved push til develop-grenen. Den henter ut koden, bygger appen og ruller den deretter konseptuelt ut til staging-miljøet, samtidig som eventuelle beskyttelsesregler du har konfigurert, respekteres.

name: Deploy to Staging Environment

on:
  push:
    branches:
      - develop # Trigger only on pushes to the 'develop' branch

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: staging # Link this job to the 'staging' environment

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Node.js (Example)
        uses: actions/setup-node@v4
        with:
          node-version: '18'

      - name: Install dependencies
        run: npm ci

      - name: Build application
        run: npm run build

      - name: Deploy to Staging Server
        run: echo "Deployment to staging completed!"

Sjekk av stagingutrulling

Du har lært hvordan du setter opp en GitHub Actions-arbeidsflyt for utrulling til et stagingmiljø. La oss teste kunnskapene dine!

Oppsummering: Stagingutrullinger

Godt jobbet! Du har lært hvordan du setter opp GitHub Actions for utrulling til et stagingmiljø.

  • Staging er et produksjonslignende miljø for testing før produksjon.
  • GitHub Environments hjelper deg med å ivareta sikkerheten rundt utrullinger og håndtere secrets.
  • Arbeidsflyter bruker nøkkelen environment til å målrette bestemte miljøer.
  • Denne prosessen minimerer risikoen og sikrer en smidigere overgang til produksjon.

Deretter skal vi se på hvordan du håndterer sensitiv informasjon med miljøvariabler og secrets!

Gratis å komme i gang

Lær deg CI/CD med GitHub Actions og DevOps-pipelines med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Distribuere til et stagingmiljø» gratis?

Ja – hele teksten i «Distribuere til et stagingmiljø» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av CI/CD med GitHub Actions og DevOps-pipelines-kurset, kan du oppgradere til CoddyKit PRO. Kurset i CI/CD med GitHub Actions og DevOps-pipelines inneholder totalt 4 leksjoner.

Hva lærer jeg i «Distribuere til et stagingmiljø»?

Sett opp en arbeidsflyt som automatisk distribuerer applikasjonen til et stagingmiljø for testing før produksjonssetting. Du øver på CI/CD med GitHub Actions og DevOps-pipelines med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med CI/CD med GitHub Actions og DevOps-pipelines?

Ingen tidligere erfaring er nødvendig. CI/CD med GitHub Actions og DevOps-pipelines på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Distribuere til et stagingmiljø»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne CI/CD med GitHub Actions og DevOps-pipelines-leksjonen?

Ja. Alle CI/CD med GitHub Actions og DevOps-pipelines-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til Continuous Deployment
  2. Distribuere til et stagingmiljø
  3. Miljøvariabler og hemmeligheter
  4. Utrulling til produksjon med godkjenningsporter
← Tilbake til CI/CD med GitHub Actions og DevOps-pipelines