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 শাখায় পুশ হলে চালানো হবে
"}}}}}]},