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:
- 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.
- Testlər: Avtomatlaşdırılmış testlər keçirirəm (birlik, inteqrasiya, son-uca testlər) funksionallığı yoxlamaq üçün.
- Versiyalaşdırma: Git etiketi və ya commit yaradırıq, buraxılış versiyasını müəyyən etmək üçün.
- Staging mühitinə yerləşdirmə (istəyə bağlı): Son yoxlama üçün test serverinə yerləşdirmə.
- İ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.
- 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)