Sobes.tech
Middle

Tətbiqlərin yerləşdirilməsini necə həyata keçirirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Yükləmə prosesi layihənin miqyasına və istifadə olunan infrastrukturdan asılıdır, amma ümumiyyətlə aşağıdakı addımları izləyirəm:

  1. Layihənin qurulması: Webpack, Rollup və ya Vite kimi paketləyicilərdən istifadə edərək kodu transpilyasiya edirəm, minləşdirirəm və resursları optimallaşdırıram.
  2. Testlər: Avtomatlaşdırılmış testlər keçirirəm (birlik, inteqrasiya, son-uca testlər) funksionallığı yoxlamaq üçün.
  3. Versiyalaşdırma: Git etiketi və ya commit yaradırıq, buraxılış versiyasını müəyyən etmək üçün.
  4. Staging mühitinə yerləşdirmə (istəyə bağlı): Son yoxlama üçün test serverinə yerləşdirmə.
  5. İstehsal mühitinə yerləşdirmə:
    • Yığılmış faylları veb serverə (Nginx, Apache) və ya CDN-ə yükləyirəm.
    • Konfiqurasiya fayllarını yeniləyirəm (əgər lazımdırsa).
    • Migrasiyaları tətbiq edirəm (əgər backend üçün uyğundursa).
    • Veb server və ya xidməti yenidən başlatıram.
  6. Yerləşdirmədən sonra yoxlama: İstehsal mühitində funksionallığı yoxlayıram, metrikləri izləyirəm.

Əksər addımları avtomatlaşdırmaq üçün CI/CD alətlərindən (GitHub Actions, GitLab CI, Jenkins) istifadə edirəm, bu da ardıcıllığı təmin edir və səhv ehtimalını azaldır.

Statik hosting üçün sadə CI/CD boru xətti nümunəsi:

# .github/workflows/deploy.yml
name: GitHub Pages-ə yerləşdirmə

on:
  push:
    branches:
      - main # main branch-ə push zamanı tetiklenir

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest # İstifadə olunan əməliyyat sistemi

    steps:
    - name: Kodun yoxlanması
      uses: actions/checkout@v2 # Repositoriyadan kodu əldə et

    - name: Node.js qurulması
      uses: actions/setup-node@v2 # Node.js konfiqurasiyası
      with:
        node-version: '16' # Müəyyən Node.js versiyası

    - name: Asılılıqları quraşdır
      run: npm ci # Asılılıqları quraşdır

    - name: Layihəni qur
      run: npm run build # package.json-dan qurma skriptini icra et

    - name: GitHub Pages-ə yerləşdirmə
      uses: peaceiris/actions-gh-pages@v3 # GitHub Pages-ə yerləşdirmək üçün fəaliyyət
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }} # Giriş tokeni
        publish_dir: ./dist # Yığılmış layihənin qovluğu (bundler konfiqurasiyasından asılıdır)