Sobes.tech
Middle

Ilovalarni dasturlarni qanday amalga oshirasiz?

sobes.tech AI

AIdan javob

Yükleme prosesi, projenin ölçeğine ve kullanılan altyapıya bağlıdır, ancak genel olarak aşağıdaki adımları izlerim:

  1. Proje derleme: Webpack, Rollup veya Vite gibi paketleyiciler kullanarak kodu dönüştürürüm, minify ederim, kaynakları optimize ederim.
  2. Test: Otomatik testler yaparım (birim, entegrasyon, uçtan uca) işlevselliği kontrol etmek için.
  3. Versiyonlama: Bir git etiketi veya commit oluşturarak sürümünü sabitlerim.
  4. Staging ortamına dağıtım (isteğe bağlı): Son kontrol için test sunucusuna dağıtım.
  5. Üretim ortamına dağıtım:
    • Derlenmiş dosyaları web sunucusuna (Nginx, Apache) veya CDN'ye yükleme.
    • Konfigürasyon dosyalarını güncelleme (gerekirse).
    • Migrasyonları uygulama (backend için uygunsa).
    • Web sunucusunu veya hizmeti yeniden başlatma.
  6. Yayın sonrası kontrol: Üretim ortamında işlevselliği kontrol ederim, metrikleri izlerim.

Çoğu adımı otomatikleştirmek için CI/CD araçları (GitHub Actions, GitLab CI, Jenkins) kullanıyorum, bu tutarlılığı sağlar ve hata olasılığını azaltır.

Statik barındırma için basit bir CI/CD boru hattı örneği:

# .github/workflows/deploy.yml
name: GitHub Pages'a Dağıtım

on:
  push:
    branches:
      - main # main dalına push yapıldığında tetiklenir

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest # Kullanılan işletim sistemi

    steps:
    - name: Kodu kontrol et
      uses: actions/checkout@v2 # Depodan kodu al

    - name: Node.js kur
      uses: actions/setup-node@v2 # Node.js ayarla
      with:
        node-version: '16' # Belirli Node.js sürümü

    - name: Bağımlılıkları yükle
      run: npm ci # Bağımlılıkları yükle

    - name: Projeyi derle
      run: npm run build # package.json'dan derleme komutunu çalıştır

    - name: GitHub Pages'a dağıt
      uses: peaceiris/actions-gh-pages@v3 # GitHub Pages'a dağıtmak için eylem
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }} # Erişim belirteci
        publish_dir: ./dist # Derlenmiş proje klasörü (dépend de la configuration du bundler)