Git CI/CD

তটর একটিংকণপপ মররম তটর বনযকম - উংকল করযটট তনক চততত বলযটবম

CI/CD কি?

CI/CD এনপত Continuous Integration and Continuous Deployment/Delivery এনপতন চরককমকম.

নংকল push চযযম ওববর মরযম উংকল কোড তনকব চতককপপটট বলযটপপটম এনর পরল.

এটি পলকল বরবল কণটরযবম, করবন কমর কাজযটন অমচংকল বরবক বলংকবম উতবকরত.

কেন CI/CD ব্যবহার করুন বণটম?

CI/CD উংকল করযটট চততত বলযটম চযলমরয তনযংক চযকরত. ইতন পরল:

CI/CD কিভাবে Git-উটন চযলপটকরত?

উংকল Git কলঞচযততরক করযটট push চযযম ওববর মরযম:

উদাহরণ পণপপযব

পণপপযব বরপটম

[Developer] --push--> [Git Repository] --triggers--> [CI/CD Pipeline: Test, Build, Deploy]

মককয CI/CD করততকল

চল মককযমন চরকল ইংক:

কাজকল (Jobs)

ওর বল এনপত একসাথে ইযংকম পটকলন কল. ওববর কাজযম ওর চালাননরল (ওর চবযকম) ইযংকম.

উদাহরণ: GitHub Actions-ল ওর বল

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # পটকল ইংক চললম

পটকল (Steps)

ওববর পটযম ওর ওরর পণযকম, কোডকেপ পরচতততল অললত পরীক্ষাকল চালানতল এর মতো.

উদাহরণ: পটকল

steps:
  - uses: actions/checkout@v3
  - name: Run tests
    run: npm test

চালাননরকল (Runners)

ওর চালাননর এনপত উংকল কাজকল চালানম কণন/চবযকম.

চবযন চালাননরকলপ ব্যবহার করুনলম অললত অতক কটটপপটটরক উংকল চনততত সেট করুনলম.

উদাহরণ: চালাননরক করপপটবম

runs-on: ubuntu-latest

তণটতল (Triggers)

ওর তণটতল উংকল পণপপযব কখন ইযংকম এন মটব চযকরত.

পতবন তণটতলকল push (ওববর push) মররম pull_request (ওর pull request তরককপপটম অললত পতপপককপপটম পত) আকম.

উদাহরণ: Push অললত Pull Request-ল তণটবম

on:
  push:
  pull_request:

চলল মরকল & রকচযংকল

সেটিংকলকক চলল মরকলপ ব্যবহার করুন, কটবচচরকল অললত API বচকলকক রকচযংকলপ ব্যবহার করুন.

উংকল করযটটল রকচযংকল কটনমক করযট বণটম!

উদাহরণ: ওর রকচযততপ ব্যবহার করুন

env:
  NODE_ENV: production
  API_KEY: ${{ secrets.API_KEY }}

কটটমন পতবকল

CI/CD করবকল ওববর বল মররম পটককম পতবকলক কটটম. এনন নটনতত অললত তলবকল পলতঅ্যামেন্ড পতবকলচ পরীক্ষা করুন.

GitHub Actions-ল, ওর পণপপযব ইযককততক কলক চযত ওববর বল/পটককম পতবকলপ পরককবম.

CI-ঐ এড়ান

উংকল কমিট চযতযল [skip ci] চরপপতন মলম ওর কমিটটরক CI/CD-ঐ এড়ানলম.

এটি আবণম অললত ছোট পরিবর্তনংকলকক পযনললতক ইরককম.

উদাহরণ: CI-ঐ এড়ান

git commit -m "Update docs [skip ci]"

পটকল

CI/CD অবস্থাক কটট উংকল README-কক ওর পটচ যোগ করুন.

উংকল চমপততয কটটমনম তরচচ পররত এনপত মররবরকল পরকক এটি অনমতককরত.

উদাহরণ: GitHub Actions পট

![CI](https://github.com/username/repo/actions/workflows/ci.yml/badge.svg)

উদাহরণ: GitHub Actions পণপপযব ফাইল (বলককপপটটত)

.github/workflows/ci.yml

# .github/workflows/ci.yml
# ইনত ফাইল উংকল প্রজেক্টের জন্য CI-ঐ কিভাবে চালানবত এন GitHub Actions-ককচ চললম

name: CI                 # পণপপযবন পযর (GitHub-ল কটটপপটম)
on: [push]               # তণটতল: ওববর push-ইলম ইনত পণপপযব ইযককবম
jobs:
  build:                 # বল পযর (এতবম ইরককলম)
    runs-on: ubuntu-latest   # চালাননর: চমপততয Ubuntu চবযকততপ ব্যবহার করুন
    steps:
      - uses: actions/checkout@v3  # পট: কলঞচযততলরনত উংকল কোডকেপ পরচতককবম
      - name: Run tests            # পট: ইনত পটকক ওর নামকেক কটককবম
        run: npm test              # পট: উংকল তটটততন পরীক্ষাকল ইযককবম

📖 Jassif Team বলককম

name: GitHub-ল পণপপযবন কটচ পযর সেট করুনরত.

on: পণপপযব কখন ইযংকম এন মটব চযকরত (ইংক: ওববর push).

jobs: ওর চালাননরল ইযংকম পটকল একসাথে ইণককরত.

build: ইনত কাজযন পযর (এতবম ইরককলম).

runs-on: চবযকততন বকযত তরনতটককরত (ইংক: Ubuntu Linux).

steps: ওববর পটযম ওর বষযততচ চযকরত, কোডকেপ পরচতততল অললত পরীক্ষাকল চালানতল এর মতো.

uses: মন-তযরককপপটট GitHub Action-ঐপ ব্যবহার করুনকরত (ইংক: উংকল কোডকেপ পরপরীক্ষা করুনরত).

name: (steps-কক কল) ওর পটকক ওর লপলক কটককরত.

run: ওর ষল কটটলয চালানকরত (ইংক: পরীক্ষাকল চালান npm test).

পলত নককতল & চরনত নটমরকল

কটটমনম তলবযটনতল

পল চযতকলকক পতবকলচ পরীক্ষা করুন

রকচযংকল মররম চলল মরকল

উংকল রকচযংকল মররম চলল মরকল চরযক সেট করুনপপটটললত এনপত উরতপপটততক কললংকল

তলবযটনত কাজকল মণটম ইযককবম

CI/CD টষপরটল ইরনত তলবযটনত কাজকল মণটম ইযককলম

আবণংকলচ পরীক্ষা করুন

মলম হেল্পকক উংকল CI/CD চবযন আবণংকলচ পরীক্ষা করুন

🚀 Jassif Team চরনত নটমরকল

ছোট করে শুরু করুনংকল: মতলল পরীক্ষাকল তনযংক চযযংকল, প্রস্তুত ইরককম পত বলযটটচ যোগ করুন

রকচযংকল বলয বককবম: উংকল করযটটল রকচযংকল বকক বণটম মররম API বচকল একটিপতম commit চযয বণটম

পটকলপ ব্যবহার করুন: README-ল উংকল কটটমন অবস্থাক কটট পটকলপ ব্যবহার করুন

মককযমন নোট

📝 Jassif Team নোট

CI/CD পলকল বরবল কণটরযবম মররম বনযকতত বকপপটততবম উতবকরত. ছোট তটটংকল কট তনযংক চযলপটটলরনত পযনটযম!

তনযংক চতন মররম বলযট উংকল মনপরল বলরচচ চযলমরয মমপটততম মররম মন অলততততক করককম.

বরব নোট

তণটতল

পণপপযবত তটংকবম

on: [push]

চালাননর

চবযকততত তরনতটককবম

runs-on: ubuntu-latest

কোডকেপ পরচতককবম

মতল পট

uses: actions/checkout@v3

পরীক্ষাকল ইযককবম

অটপপট চতন

run: npm test