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
Նմուշ Jenkinsfile կոնֆիգուրացիա պարզ CI պայպլայնի համար:
// 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- ի գործարկում 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 ճյուղի push-ների դեպքում
"}}}}}]},