Junior
Koje alate za kontinuiranu integraciju i isporuku (CI/CD) poznajete?
sobes.tech АИ
Одговор од АИ
Jenkins, GitLab CI, GitHub Actions, CircleCI, TeamCity, Azure DevOps Pipelines, Bamboo, Travis CI.
Glavne kategorije alata za CI/CD:
- Kompletne platforme: Obuhvataju sveobuhvatna rešenja koja uključuju upravljanje repozitorijumima, CI, CD, nadzor i druge funkcije.
- GitLab (GitLab CI)
- GitHub (GitHub Actions)
- Azure DevOps
- Opšti alati za CI/CD: Fleksibilni sistemi koji se mogu integrisati sa raznim alatima za izgradnju, testiranje i implementaciju.
- Jenkins
- CircleCI
- Bamboo
- TeamCity
- Travis CI
- Sistemi za izgradnju: Fokusirani na automatizaciju procesa kompilacije, testiranja i pakovanja koda.
- Maven
- Gradle
- Ant
- Alati za implementaciju: Specijalizovani za automatizaciju isporuke aplikacija u različite okoline.
- Ansible
- Chef
- Puppet
- Spinnaker
- Argo CD
Primer konfiguracije Jenkinsfile za jednostavan CI pipeline:
// 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' // Izgradnja aplikacije pomoću Maven
}
}
stage('Test') {
steps {
sh 'mvn test' // Pokretanje testova
}
}
stage('Build Docker Image') {
steps {
script { // Kreiranje Docker slike
docker.build("my-app:${env.BUILD_ID}")
}
}
}
stage('Deploy') {
steps {
// Koraci za implementaciju, na primer, na Kubernetes
echo "Implementacija slike my-app:${env.BUILD_ID}..."
}
}
}
}
Primer konfiguracije GitLab CI za isti pipeline:
# .gitlab-ci.yml
image: maven:latest # Korišćenje Maven slike
stages:
- build
- test
- docker_build
- deploy
build:
stage: build
script:
- mvn clean package -B # Izgradnja aplikacije pomoću Maven u režimu paketa
test:
stage: test
script:
- mvn test -B # Pokretanje testova u režimu paketa
docker_build:
stage: docker_build
image: docker:latest # Korišćenje Docker slike
services:
- docker:dind # Pokretanje Docker u Docker servisu
variables:
DOCKER_HOST: tcp://docker:2375 # Promenljiva okruženja za pristup Docker servisu
DOCKER_TLS_CERTDIR: "" # Isključivanje TLS
script:
- docker build -t my-app:$CI_COMMIT_SHORT_SHA . # Izgradnja Docker slike
- docker push my-app:$CI_COMMIT_SHORT_SHA # Pushing slike
deploy:
stage: deploy
script:
- echo "Implementacija slike my-app:$CI_COMMIT_SHORT_SHA..."
only:
- main # Izvršava se samo pri push-u na main granu
"}}}}}]},