Назад к вопросам
Junior
65
questionbank
Каков процесс сборки в CI/CD?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
- Cборка исходного кода проекта.
- Запуск юнит-тестов.
- Выполнение интеграционных тестов.
- Сборка артефакта (например, Docker-образ, JAR-файл, пакет).
- Сканирование артефакта на уязвимости и соблюдение стандартов.
- Публикация артефакта в репозиторий артефактов.
- Запуск регрессионных и функциональных тестов на собранном артефакте.
- Создание отчета о сборке с результатами всех шагов.
Пример файла сборки в Jenkins (Pipeline):
// Jenkins Pipeline (Groovy)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building the project...'
sh 'mvn clean package' // Пример для Maven
}
}
stage('Unit Tests') {
steps {
echo 'Running unit tests...'
sh 'mvn test'
}
}
stage('Integration Tests') {
steps {
echo 'Running integration tests...'
sh 'mvn integration-test'
}
}
stage('Build Docker Image') {
steps {
echo 'Building Docker image...'
script {
docker.build("my-app:${env.BUILD_ID}")
}
}
}
stage('Publish Artifact') {
steps {
echo 'Publishing artifact...'
// Пример публикации в Nexus
nexusPublisher nexusInstanceId: 'nexus', nexusRepositoryId: 'maven-releases', artifacts: [
[artifactId: 'my-app',
classifier: '',
file: 'target/my-app.jar',
groupId: 'com.example',
type: 'jar',
version: "${env.BUILD_ID}-SNAPSHOT"]
]
}
}
stage('Security Scan') {
steps {
echo 'Scanning for vulnerabilities...'
// Пример использования SonarQube
withSonarQubeEnv('SonarQube') {
sh 'mvn sonar:sonar'
}
}
}
}
post {
always {
echo 'Build finished.'
junit '**/target/surefire-reports/*.xml' // Публикация отчетов о тестах
}
failure {
echo 'Build failed.'
}
}
}