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