Junior
Aké nástroje na neprekinutú integráciu a doručenie (CI/CD) poznáte?
sobes.tech AI
Odpoveď od AI
Jenkins, GitLab CI, GitHub Actions, CircleCI, TeamCity, Azure DevOps Pipelines, Bamboo, Travis CI.
Hlavné kategórie nástrojov CI/CD:
- Kompletné platformy: Poskytujú komplexné riešenia vrátane správy repozitárov, CI, CD, monitorovania a ďalších funkcií.
- GitLab (GitLab CI)
- GitHub (GitHub Actions)
- Azure DevOps
- Všeobecné nástroje CI/CD: Flexibilné systémy, ktoré je možné integrovať s rôznymi nástrojmi na zostavovanie, testovanie a nasadzovanie.
- Jenkins
- CircleCI
- Bamboo
- TeamCity
- Travis CI
- Systémy na zostavovanie: Zamerané na automatizáciu procesu kompilácie, testovania a balenia kódu.
- Maven
- Gradle
- Ant
- Nástroje na nasadzovanie: Špecializované na automatizáciu doručenia aplikácií do rôznych prostredí.
- Ansible
- Chef
- Puppet
- Spinnaker
- Argo CD
Príklad konfigurácie Jenkinsfile pre jednoduchý 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' // Sestavenie aplikácie pomocou Maven
}
}
stage('Test') {
steps {
sh 'mvn test' // Spustenie testov
}
}
stage('Build Docker Image') {
steps {
script { // Vytvorenie Docker obrazu
docker.build("my-app:${env.BUILD_ID}")
}
}
}
stage('Deploy') {
steps {
// Kroky na nasadenie, napríklad na Kubernetes
echo "Nasadenie obrazu my-app:${env.BUILD_ID}..."
}
}
}
}
Príklad konfigurácie GitLab CI pre rovnaký pipeline:
# .gitlab-ci.yml
image: maven:latest # Použitie obrazu Maven
stages:
- build
- test
- docker_build
- deploy
build:
stage: build
script:
- mvn clean package -B # Sestavenie aplikácie pomocou Maven v režime balíčka
test:
stage: test
script:
- mvn test -B # Spustenie testov v režime balíčka
docker_build:
stage: docker_build
image: docker:latest # Použitie obrazu Docker
services:
- docker:dind # Spustenie Docker v Docker službe
variables:
DOCKER_HOST: tcp://docker:2375 # Premenná prostredia pre prístup k Docker službe
DOCKER_TLS_CERTDIR: "" # Vypnutie TLS
script:
- docker build -t my-app:$CI_COMMIT_SHORT_SHA . # Sestavenie Docker obrazu
- docker push my-app:$CI_COMMIT_SHORT_SHA # Push obrazu do repozitára
deploy:
stage: deploy
script:
- echo "Nasadenie obrazu my-app:$CI_COMMIT_SHORT_SHA..."
only:
- main # Spúšťať iba pri pushi do vetvy main
"}}}}}]},