Sobes.tech
Middle

Jak provádíte nasazení aplikací?

sobes.tech AI

Odpověď od AI

Proces nasazení závisí na velikosti projektu a použité infrastruktuře, ale obecně následuji tyto kroky:

  1. Sestavení projektu: Používám balíčkovače jako Webpack, Rollup nebo Vite k transpileci kódu, minifikaci a optimalizaci zdrojů.
  2. Testování: Provádím automatizované testy (unit, integrační, end-to-end) pro ověření funkčnosti.
  3. Verzování: Vytvářím git tag nebo commit pro stanovení verze vydání.
  4. Nasazení na staging (volitelné): Nasazení na testovací server pro finální kontrolu týmem.
  5. Nasazení na produkci:
    • Nahrání sestavených souborů na webový server (Nginx, Apache) nebo CDN.
    • Aktualizace konfiguračních souborů (je-li potřeba).
    • Aplikace migrací (pokud je to relevantní pro backend).
    • Restart webového serveru nebo služby.
  6. Kontrola po nasazení: Kontroluji funkčnost v produkčním prostředí, monitorování metrik.

Používám nástroje CI/CD (GitHub Actions, GitLab CI, Jenkins) k automatizaci většiny těchto kroků, což zajišťuje konzistenci a snižuje pravděpodobnost chyb.

Příklad jednoduchého CI/CD pipeline pro nasazení na statický hosting:

# .github/workflows/deploy.yml
name: Deploy na GitHub Pages

on:
  push:
    branches:
      - main # Spouští se při push na větev main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest # Použitý operační systém

    steps:
    - name: Stažení kódu
      uses: actions/checkout@v2 # Stažení kódu z repozitáře

    - name: Nastavení Node.js
      uses: actions/setup-node@v2 # Konfigurace Node.js
      with:
        node-version: '16' # Konkrétní verze Node.js

    - name: Instalace závislostí
      run: npm ci # Instalace závislostí

    - name: Sestavení projektu
      run: npm run build # Spuštění build skriptu z package.json

    - name: Nasazení na GitHub Pages
      uses: peaceiris/actions-gh-pages@v3 # Akce pro nasazení na GitHub Pages
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }} # Přístupový token
        publish_dir: ./dist # Složka s postaveným projektem (závisí na konfiguraci bundleru)