Junior
Hangi sürekli entegrasyon ve teslimat (CI/CD) araçlarını biliyorsunuz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Jenkins, GitLab CI, GitHub Actions, CircleCI, TeamCity, Azure DevOps Pipelines, Bamboo, Travis CI.
Ana CI/CD araç kategorileri:
- Tam döngü platformları: Depo yönetimi, CI, CD, izleme ve diğer fonksiyonları içeren kapsamlı çözümler sunar.
- GitLab (GitLab CI)
- GitHub (GitHub Actions)
- Azure DevOps
- Genel amaçlı CI/CD araçları: Farklı araçlarla entegre olabilen esnek sistemler.
- Jenkins
- CircleCI
- Bamboo
- TeamCity
- Travis CI
- Derleme sistemleri: Kodun derlenmesi, test edilmesi ve paketlenmesi sürecini otomatikleştirir.
- Maven
- Gradle
- Ant
- Dağıtım araçları: Uygulamaların farklı ortamlara otomatik teslimi için uzmanlaşmış araçlar.
- Ansible
- Chef
- Puppet
- Spinnaker
- Argo CD
Basit bir CI pipeline'ı için Jenkinsfile yapılandırması örneği:
// 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 ile uygulamayı derle
}
}
stage('Test') {
steps {
sh 'mvn test' // Testleri çalıştır
}
}
stage('Build Docker Image') {
steps {
script { // Docker imajı oluştur
docker.build("my-app:${env.BUILD_ID}")
}
}
}
stage('Deploy') {
steps {
// Kubernetes gibi ortamlara dağıtım adımları
echo "my-app:${env.BUILD_ID} imajını dağıt..."
}
}
}
}
Benzer pipeline için GitLab CI yapılandırması örneği:
# .gitlab-ci.yml
image: maven:latest # Maven imajını kullan
stages:
- build
- test
- docker_build
- deploy
build:
stage: build
script:
- mvn clean package -B # Maven ile uygulamayı paketle
test:
stage: test
script:
- mvn test -B # Testleri çalıştır
docker_build:
stage: docker_build
image: docker:latest # Docker imajını kullan
services:
- docker:dind # Docker in Docker
variables:
DOCKER_HOST: tcp://docker:2375 # Docker erişimi için ortam değişkeni
DOCKER_TLS_CERTDIR: "" # TLS devre dışı
script:
- docker build -t my-app:$CI_COMMIT_SHORT_SHA . # Docker imajını oluştur
- docker push my-app:$CI_COMMIT_SHORT_SHA # İmajı push et
deploy:
stage: deploy
script:
- echo "my-app:$CI_COMMIT_SHORT_SHA imajını dağıt..."
only:
- main # Sadece main dalına push yapıldığında çalışır