Blog/devops/GitHub Actions ilə Avtomatik Deploy — Pulsuz Hosting, Sıfır Stress
devops

GitHub Actions ilə Avtomatik Deploy — Pulsuz Hosting, Sıfır Stress

B
Baku Stack AI
·16 aprel 2026·4 dəq oxuma·13 baxış
devops.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ CI/CD PIPELINE ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ git push → trigger ▓
▓ ↓ ▓
▓ ● checkout ✓ ▓
▓ ● npm ci ✓ ▓
▓ ● npm test ✓ ▓
▓ ● npm build ✓ ▓
▓ ● deploy ✓ ▓
▓ ↓ ▓
▓ PROGRESS ▓▓▓▓▓▓▓▓ 100%▓
▓ → SAYT CANLIDIR! ░░░ ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Hər git push əmrindən sonra saytın avtomatik deploy olsun, həm də pulsuz? GitHub Actions + GitHub Pages ilə bunu 10 dəqiqəyə qurursan.

Hər Dəfə FTP-yə Girməkdən Bezdinmi?

Bakıda bir dostum var — freelance işləyir, ayda 800-1000 AZN qazanır. Keçən həftə mənə zəng etdi: "Qardaş, hər dəfə müştəriyə sayt göstərmək üçün FileZilla açıb FTP-yə yükləyirəm, dəli oluram." Tanış gəlir, elə deyilmi?

Əgər sən də hər deployment-də əl ilə fayl yükləyirsənsə, build unutursan, yaxud "məndə işləyirdi" sindromunu yaşayırsan — bu məqalə sənin üçündür. Bu gün GitHub Actions ilə tam avtomatik CI/CD pipeline quracağıq. Üstəlik, hosting pulsuz olacaq.

GitHub Actions Nədir və Niyə Maraqlanmalısan?

GitHub Actions — GitHub-un daxili CI/CD (Continuous Integration / Continuous Deployment) platformasıdır. Sadə dillə desək: sən kod push edirsən, qalanını GitHub özü edir — build, test, deploy.

Rəqəmlərlə danışaq:

  • Pulsuz hesabda ayda 2000 dəqiqə build vaxtı verilir (public repo-lar üçün limitsiz)
  • GitHub Pages ilə birlikdə hosting də pulsuzdur — custom domain da dəstəkləyir
  • Dünyada 100 milyondan çox repository artıq GitHub Actions istifadə edir
  • Azərbaycanda Kapital Bank, ABB, PASHA Holding kimi şirkətlərin development komandaları CI/CD pipeline-lardan aktiv istifadə edir

Burda söhbət sadəcə portfolio saytdan getmir. Real production-da işləyən komandalar üçün bu, standartdır. İş müsahibəsində "CI/CD bilirsən?" sualına "GitHub Actions ilə pipeline qurmuşam" cavabı verməyin dəyəri tamam başqadır.

Praktiki Layihə: React Saytını Avtomatik Deploy Etmək

Gəlin addım-addım gedək. Fərz edək ki, React ilə portfolio saytın var və hər push-dan sonra avtomatik olaraq GitHub Pages-ə deploy olunmasını istəyirsən.

Addım 1: React Layihəni Hazırla

Əgər hələ yoxdursa:

bash
npx create-react-app my-portfolio cd my-portfolio git init git remote add origin https://github.com/USERNAME/my-portfolio.git

package.json faylına bu sətri əlavə et:

json
{ "homepage": "https://USERNAME.github.io/my-portfolio" }

Addım 2: GitHub Actions Workflow Yarat

Layihənin kök qovluğunda bu strukturu yarat:

.github/
  workflows/
    deploy.yml

İndi əsas fayl — deploy.yml:

yaml
name: Deploy to GitHub Pages on: push: branches: - main permissions: contents: read pages: write id-token: write jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Run tests run: npm test -- --passWithNoTests - name: Build run: npm run build - name: Setup Pages uses: actions/configure-pages@v4 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: './build' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4

Bu 40 sətir YAML faylı sənin üçün bunları edir:

  1. Checkout — kodu çəkir
  2. Node.js quraşdırır — npm cache ilə (sürətli)
  3. Dependency-ləri yükləyirnpm ci ilə (clean install)
  4. Testləri işlədir — bug-lar production-a düşməsin
  5. Build edir — optimized production build
  6. Deploy edir — GitHub Pages-ə avtomatik

Addım 3: GitHub Settings-dən Pages Aktiv Et

Repo → Settings → Pages → Source: GitHub Actions seç. Vəssalam.

Addım 4: Push Et və Sehri İzlə

bash
git add . git commit -m "feat: add CI/CD pipeline" git push origin main

İndi repo-nun Actions tabına keç. Görəcəksən ki, workflow işə düşüb. 1-2 dəqiqəyə yaşıl checkmark görəcəksən. Saytın artıq https://USERNAME.github.io/my-portfolio ünvanında canlıdır.

Workflow Necə İşləyir? Axış Diaqramı

Prosesi vizuallaşdıraq:

git push (main) → GitHub Actions trigger olur
    ↓
Checkout → Node.js Setup → npm ci
    ↓
npm test → npm run build
    ↓
Build uğurludursa → GitHub Pages-ə deploy
    ↓
Sayt 1-2 dəqiqəyə canlıdır ✓

Əgər test uğursuz olarsa, deploy baş tutmur. Bu, sənin sığortandır — production-a xarab kod düşmür.

Pulsuz Alternativlərlə Müqayisə

PlatformaPulsuz LimitCustom DomainCI/CD Daxili
GitHub PagesLimitsiz (statik)✓ (Actions)
Netlify100GB/ay bandwidth
Vercel100GB/ay bandwidth
HerokuArtıq pulsuz deyilXarici lazım

GitHub Pages statik saytlar üçün idealdır — portfolio, blog, landing page, documentation. Əgər backend lazımdırsa, Vercel-in serverless functions-ına bax.

Azərbaycan Reallığında Bu Nə Deməkdir?

Bakıda Junior Developer maaşı 800-1200 AZN, Middle artıq 1500-2500 AZN civarındadır. Şirkətlər — istər PASHA, istər Kapital Bank tech komandası, istərsə də kiçik startuplar — CI/CD bilən developer axtarır.

CV-ndə "GitHub Actions ilə CI/CD pipeline qurmuşam" yazmaq sənə digər namizədlərdən fərq yaradır. Əksər junior developer-lər hələ FTP ilə deploy edirlər. Sən isə artıq professional workflow bilirsən.

Əlavə olaraq, freelance müştərilərə "hər dəyişiklik avtomatik yenilənir" demək — premium xidmət təsiri bağışlayır. Bunu əlavə xidmət kimi 50-100 AZN-ə sata bilərsən.

Növbəti Addımlar

Bu pipeline-ı qurduqdan sonra inkişaf etdirmək üçün:

  • Environment secrets əlavə et (API key-lər üçün)
  • Branch protection rules qur — main-ə birbaşa push olmasın, PR tələb olsun
  • Slack/Telegram notification əlavə et — deploy olanda xəbər gəlsin
  • Lighthouse CI inteqrasiya et — hər deploy-da performance score yoxlansın

Son Söz

GitHub Actions öyrənmək 2026-da developer üçün savadlılıq kimidir — onsuz da olar, amma onunla tamam başqa səviyyədə olursan. Bu məqalədəki pipeline-ı qurmaq sənə 10 dəqiqə vaxt aparacaq, amma hər gələcək deploy-da saat yarım qənaət edəcək.

Terminalı aç, deploy.yml faylını yarat və push et. Qalanını GitHub edir.


Sualın var? GitHub repo-nu comment-də paylaş, birlikdə debug edək. Baku Stack icması hər zaman yanındadır. 🚀

Oxşar məqalələr

devops.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ DEVOPS ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ $ docker build . ▓
▓ → deps ▓▓▓▓░░ 60% ▓
▓ → build ▓▓▓▓▓░ 80% ▓
▓ → runner ▓▓▓▓▓▓ ✓ ▓
▓ ● Image: 130 MB ▓
▓ ● Port: 3000 ▓
▓ ● User: nextjs ▓
▓ ──────────────────── ▓
▓ $ docker run -p 3000 ▓
▓ ✓ Ready on :3000 ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Docker ilə Next.js App Deployment — Addım-Addım Bələdçi

Next.js layihəni Docker ilə containerləşdirib production-a çıxarmağın ən sadə və düzgün yolu — real kod nümunələri ilə.

devops.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ DEVOPS ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ $ minikube start ▓
▓ ✓ cluster ready ▓
▓ ▓
▓ PODs: ●●●●●○○○ ▓
▓ NODES: ●●● ▓
▓ CPU: ▓▓▓▓▓░░░ 65% ▓
▓ MEM: ▓▓▓▓░░░░ 48% ▓
▓ ▓
▓ → scaling: 2 → 20 ▓
▓ → downtime: 0 sec ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Kubernetes başlanğıcı — nə vaxt lazım olur, nə vaxt yox?

Hər layihəyə Kubernetes lazım deyil. Gəl birlikdə baxaq: K8s nə vaxt həqiqətən işə yarayır, nə vaxt isə vaxt itkisidir.

devops.ascii
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ ■ ■ ■ SECURITY ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
▓ .env → ⚠ LEAKED! ▓
▓ API_KEY=sk-proj-4f.. ▓
▓ DB_PASS=super_sec... ▓
▓ ░░░░░░░░░░░░░░░░░░░ ▓
▓ ● Scan: gitleaks ▓
▓ ● Risk: ▓▓▓▓▓▓▓▓░░ ▓
▓ ● Leaks: 12.8M/year ▓
▓ ░░░░░░░░░░░░░░░░░░░ ▓
▓ ✓ .gitignore → .env ▓
▓ ✓ Rotate keys 90d ▓
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓

Environment Variables Təhlükəsizliyi — Developer-lərin Buraxdığı Səhvlər

Hər il minlərlə API key GitHub-da açıq qalır. Azərbaycanlı developer-lər olaraq biz də bu səhvləri edirik — gəlin real nümunələrlə öyrənək və qorunaq.

← Bloqa qayıt