Junior
Milyen folyamatos integrációs és szállítási (CI/CD) eszközöket ismer?
sobes.tech MI
Válasz az MI-től
Jenkins, GitLab CI, GitHub Actions, CircleCI, TeamCity, Azure DevOps Pipelines, Bamboo, Travis CI.
A CI/CD eszközök fő kategóriái:
- Teljes körű platformok: Komplett megoldásokat kínálnak, beleértve a tárhelykezelést, CI-t, CD-t, monitorozást és más funkciókat.
- GitLab (GitLab CI)
- GitHub (GitHub Actions)
- Azure DevOps
- Általános célú CI/CD eszközök: Rugalmas rendszerek, amelyeket különböző eszközökkel lehet integrálni az építéshez, teszteléshez és telepítéshez.
- Jenkins
- CircleCI
- Bamboo
- TeamCity
- Travis CI
- Építési rendszerek: Az automatizálásra összpontosítanak a kód fordításában, tesztelésében és csomagolásában.
- Maven
- Gradle
- Ant
- Telepítési eszközök: A szoftverek különböző környezetekbe történő automatikus szállítására specializálódtak.
- Ansible
- Chef
- Puppet
- Spinnaker
- Argo CD
Példa Jenkinsfile konfiguráció egy egyszerű CI pipeline-hoz:
// 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' // Az alkalmazás buildelése Maven-nel
}
}
stage('Test') {
steps {
sh 'mvn test' // Tesztek futtatása
}
}
stage('Build Docker Image') {
steps {
script { // Docker kép készítése
docker.build("my-app:${env.BUILD_ID}")
}
}
}
stage('Deploy') {
steps {
// Telepítési lépések, például Kubernetes-re
echo "A my-app:${env.BUILD_ID} kép telepítése..."
}
}
}
}
Példa GitLab CI konfiguráció azonos pipeline-hoz:
# .gitlab-ci.yml
image: maven:latest # Maven kép használata
stages:
- build
- test
- docker_build
- deploy
build:
stage: build
script:
- mvn clean package -B # Az alkalmazás buildelése Maven-nel csomagolási módban
test:
stage: test
script:
- mvn test -B # Tesztek futtatása csomagolási módban
docker_build:
stage: docker_build
image: docker:latest # Docker kép használata
services:
- docker:dind # Docker in Docker szolgáltatás
variables:
DOCKER_HOST: tcp://docker:2375 # Környezeti változó a Docker eléréséhez
DOCKER_TLS_CERTDIR: "" # TLS kikapcsolása
script:
- docker build -t my-app:$CI_COMMIT_SHORT_SHA . # Docker kép építése
- docker push my-app:$CI_COMMIT_SHORT_SHA # Kép pusholása a tárolóba
deploy:
stage: deploy
script:
- echo "A my-app:$CI_COMMIT_SHORT_SHA kép telepítése..."
only:
- main # Csak a main branch push esetén fut
"}}}}}}**