Sobes.tech
Junior

Кадом асбобҳои пайвастаи ҳамгироӣ ва таҳвил (CI/CD) шинос ҳастед?

sobes.tech AI

Ҷавоб аз AI

Jenkins, GitLab CI, GitHub Actions, CircleCI, TeamCity, Azure DevOps Pipelines, Bamboo, Travis CI.

মূল CI/CD টুলের প্রধান বিভাগসমূহ:

  • সম্পূর্ণ চক্রের প্ল্যাটফর্মসমূহ: সমন্বিত সমাধান প্রদান করে, যার মধ্যে রেপোজিটরি ব্যবস্থাপনা, CI, CD, মনিটরিং এবং অন্যান্য ফিচার অন্তর্ভুক্ত।
    • GitLab (GitLab CI)
    • GitHub (GitHub Actions)
    • Azure DevOps
  • সাধারণ উদ্দেশ্যের CI/CD টুলসমূহ: নমনীয় সিস্টেম, যা বিভিন্ন টুলের সাথে ইন্টিগ্রেট করে নির্মাণ, পরীক্ষা এবং ডেপ্লয়মেন্টের জন্য ব্যবহৃত হয়।
    • Jenkins
    • CircleCI
    • Bamboo
    • TeamCity
    • Travis CI
  • নির্মাণ সিস্টেমসমূহ: কোডের কম্পাইল, পরীক্ষা এবং প্যাকেজিং প্রক্রিয়াকে স্বয়ংক্রিয় করে।
    • Maven
    • Gradle
    • Ant
  • ডেপ্লয়মেন্ট টুলসমূহ: অ্যাপ্লিকেশন বিভিন্ন পরিবেশে স্বয়ংক্রিয়ভাবে বিতরণের জন্য বিশেষায়িত।
    • Ansible
    • Chef
    • Puppet
    • Spinnaker
    • Argo CD

একটি সহজ CI পাইপলাইন জন্য Jenkinsfile কনফিগারেশনের উদাহরণ:

// Dockerfile
FROM openjdk:11-jre-slim
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
// Jenkinsfile
pipeline {
    agent any 
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package' // Maven দিয়ে অ্যাপ্লিকেশন নির্মাণ
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test' // টেস্ট চালানো
            }
        }
        stage('Build Docker Image') {
            steps {
                script { // Docker ইমেজ তৈরি
                    docker.build("my-app:${env.BUILD_ID}") 
                }
            }
        }
        stage('Deploy') {
            steps {
                // ডেপ্লয়মেন্টের জন্য ধাপ, যেমন Kubernetes এ
                echo "my-app:${env.BUILD_ID} ইমেজ ডেপ্লয়মেন্ট..."
            }
        }
    }
}

একই পাইপলাইন জন্য GitLab CI কনফিগারেশনের উদাহরণ:

# .gitlab-ci.yml
image: maven:latest # Maven ইমেজ ব্যবহার

stages:
 - build
 - test
 - docker_build
 - deploy

build:
  stage: build
  script:
    - mvn clean package -B # Maven দিয়ে অ্যাপ্লিকেশন নির্মাণ

test:
  stage: test
  script:
    - mvn test -B # টেস্ট চালানো

docker_build:
  stage: docker_build
  image: docker:latest # Docker ইমেজ ব্যবহার
  services:
    - docker:dind # Docker in Docker সার্ভিস চালু
  variables:
    DOCKER_HOST: tcp://docker:2375 # Docker সার্ভিসের জন্য পরিবেশ পরিবর্তনশীল
    DOCKER_TLS_CERTDIR: "" # TLS বন্ধ
  script:
    - docker build -t my-app:$CI_COMMIT_SHORT_SHA . # Docker ইমেজ নির্মাণ
    - docker push my-app:$CI_COMMIT_SHORT_SHA # ইমেজ পুশ

deploy:
  stage: deploy
  script:
    - echo "my-app:$CI_COMMIT_SHORT_SHA ডেপ্লয়মেন্ট..."
  only:
    - main # শুধুমাত্র main শাখায় পুশ হলে চালানো হবে
"}}}}}]},