LESSON 25 · CI/CD · GITHUB ACTIONS

CI/CD እና
GitHub Actions 🚀

ኮድ ጻፍ → GitHub ላይ push አድርግ → ራሱ ሙከራዎችን ያካሂዳል እና ራሱ ወደ ሰርቨር ያሰማራል!
እጅህን አታንሳ — ሁሉም ራሱ ይሰራል!

✍️ የተዘጋጀው፡ @AppMinds_ET · EthioCode SoftSelect
01
CI/CD ምንድን ነው?

CI/CD ማለት Continuous Integration / Continuous Deployment ነው።

ኮድህን GitHub ላይ push በምታደርግ ቁጥር፣ ስርዓቱ ራሱ ሙከራዎችን ያካሂዳል፣ ኮዱን ይገነባል፣ እና በመጨረሻም ወደ ሰርቨር ያሰማራል። አንተ ምንም ተጨማሪ ስራ ሳትሰራ ሁሉም በራሱ ይከናወናል።

GitHub Actions ደግሞ GitHub የሚሰጠው ነጻ የ CI/CD መሳሪያ ነው።

💡 ቀላል ምሳሌ — ፋብሪካ
CI/CD ሳይኖር
👨‍🔧 በእጅ ስራ
አንተ ራስህ ሙከራ ታደርጋለህ፣ ኮዱን ትገነባለህ፣ ከዚያም FTP ወይም SSH ተጠቅመህ ሰርቨር ላይ ትጭናለህ። ጊዜ ይወስዳል እና ስህተት ቀላል ነው።
CI/CD ካለ
🤖 ራስ-ሰር
አንተ push ብቻ ታደርጋለህ። GitHub Actions ሁሉንም ራሱ ያከናውናል። ስህተት ካለ ወዲያውኑ ያሳውቃል።
🔵 CI — Continuous Integration
➤ ኮድ push ሲደረግ ራሱ ሙከራዎችን ያካሂዳል
➤ ስህተት ካለ ወዲያውኑ ያሳውቃል
➤ “ይህ ኮድ ይሰራልን?” ያረጋግጣል
➤ ኮዱን ይገነባል (npm run build)
➤ የኮድ ጥራት ይፈትሻል
🟢 CD — Continuous Deployment
➤ CI ካለቀ በኋላ ራሱ ወደ ሰርቨር ያሰማራል
➤ Vercel፣ AWS፣ Heroku ላይ ይጭናል
➤ ሰው approval ሳያስፈልግ ራሱ ይጭናል
➤ Staging → Production ራሱ ይሄዳል
02
CI/CD Pipeline — ሙሉ ሂደት

Pipeline ማለት ከኮድ push ጀምሮ እስከ ሰርቨር ላይ መድረስ ያለው ሙሉ ራስ-ሰር ሂደት ነው። እያንዳንዱ ደረጃ ቀዳሚው ካለቀ በኋላ ብቻ ይቀጥላል። አንድ ቦታ ስህተት ቢፈጠር ሁሉም ይቆማል።

ሙሉ CI/CD Pipeline ሂደት፡

01
💻
Code Push
git push main
02
🔔
Trigger
GitHub Actions ይጀምራል
03
🧪
Tests
npm test ራሱ
04
🏗️
Build
npm run build
05
🚀
Deploy
ሰርቨር ላይ ራሱ!
03
GitHub Actions እንዴት ይሰራል?

GitHub Actions ን ለመጠቀም፣ በፕሮጀክትህ ውስጥ .github/workflows/ ፎልደር ፍጠር። በዚያ ፎልደር ውስጥ .yml ፋይል ጻፍ። ይህ ፋይል ስርዓቱ ምን ማድረግ እንዳለበት በዝርዝር ይገልጻል።

GitHub Actions ቁልፍ ቃላት፡

Workflow
ሙሉ ራስ-ሰር ሂደት — .yml ፋይል ያለበት። አንድ ፕሮጀክት ብዙ workflows ሊኖሩት ይችላል።
Trigger (on:)
ምን ሲሆን workflow እንደሚጀምር — push፣ pull_request፣ schedule፣ manual
Job
ተጓዳኝ ስራ — test፣ build፣ deploy ሁሉ ለብቻ job ናቸው።
Step
Job ውስጥ ያሉ ዝርዝር ተግባራት — npm install፣ npm test ወዘተ።
04
GitHub Actions Workflow File
.github/workflows/deploy.yml
# Workflow ስም
name: CI/CD Pipeline

# Trigger — ምን ሲሆን ይጀምር?
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

# Jobs
jobs:

  test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test

      - name: Build
        run: npm run build

  deploy:
    runs-on: ubuntu-latest
    needs: test
    if: github.ref == 'refs/heads/main'

    steps:
      - uses: actions/checkout@v4

      - name: Deploy to Vercel
        uses: amondnet/vercel-action@v25
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          vercel-org-id: ${{ secrets.ORG_ID }}
          vercel-project-id: ${{ secrets.PROJECT_ID }}
          vercel-args: '--prod'

🔐 Secrets — ሚስጥራዊ እሴቶች

${{ secrets.VERCEL_TOKEN }} — እነዚህ GitHub Secrets ውስጥ የምታስቀምጣቸው ሚስጥራዊ መረጃዎች ናቸው (API keys፣ tokens)። በኮድ ውስጥ ቀጥታ አትጻፋቸው። GitHub → Settings → Secrets and variables → Actions ውስጥ አስቀምጣቸው!

05
Live CI/CD Simulator

GitHub Actions Simulator!
Push ወይም Pull Request simulate አድርግ — Pipeline ሙሉ ሂደት በቀጥታ ይሮጣል!

🚀 GitHub Actions
Ready
▶ Workflow Runs
⚡ Trigger
📋 Logs

ምን trigger ማድረግ ትፈልጋለህ? Pipeline ን ጀምር!

← Trigger ምረጥ
← Workflow run ካለቀ logs ይታያል
06
ዋና ዋና ነጥቦች
1
🤖 CI/CD = ራሱ ሙከራ + Deploy!

git push ብቻ ታደርጋለህ — ሁሉም ራሱ ይሰራል! ጊዜ ይቆጥባል እና የሰው ስህተት ይቀንሳል።

2
📁 .github/workflows/ — ዋናው ቦታ!

በዚህ ፎልደር ውስጥ .yml ፋይሎችን አስቀምጥ። GitHub ያነባቸዋል።

3
⚡ Trigger — ምን ሲሆን ይጀምር?

on: push → push ሲሆን | on: pull_request → PR ሲፈጠር

4
🔗 needs: — Jobs ተከተሉ!

needs: test = test ካለቀ በኋላ ብቻ deploy ይሂድ። Test fail ከሆነ deploy አይከናወንም።

5
🔐 Secrets — ሚስጥራዊ እሴቶች!

API keys እና tokens — GitHub Secrets ውስጥ ያስቀምጡ! በኮድ ውስጥ ቀጥታ አትጻፉ።

07
Quiz
❓ GitHub Actions workflow file የሚቀመጠው የቱ ቦታ ነው?
ምን folder ውስጥ .yml workflow file ይቀምጣል?
A/src/workflows/
B.github/workflows/ ✅
C/config/actions/
D/deploy/github/