Сергей
Сергей
Установите плагины Git, Pipeline и Docker Pipeline
GROOVY
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/username/QuickDelivery.git'
}
}
stage('Build') {
steps {
script {
docker.image('maven:3.6.3').inside {
sh 'mvn clean install'
}
}
}
}
stage('Test') {
steps {
script {
docker.image('maven:3.6.3').inside {
sh 'mvn test'
}
}
}
}
stage('Deploy') {
steps {
script {
docker.image('docker:latest').inside {
sh 'docker-compose up -d'
}
}
}
}
}
post {
always {
junit 'target/surefire-reports/*.xml'
archiveArtifacts artifacts: 'target/*.jar', fingerprint: true
}
}
} install_dependencies.sh:BASH
#!/bin/bash
apt-get update
apt-get install -y docker docker-compose build_and_test.sh:BASH
#!/bin/bash
mvn clean install
mvn test deploy.sh:BASH
#!/bin/bash
docker-compose up -d GROOVY
pipeline {
agent any
stages {
stage('Install Dependencies') {
steps {
sh 'sh scripts/install_dependencies.sh'
}
}
stage('Checkout') {
steps {
git 'https://github.com/username/QuickDelivery.git'
}
}
stage('Build and Test') {
steps {
sh 'sh scripts/build_and_test.sh'
}
}
stage('Deploy') {
steps {
sh 'sh scripts/deploy.sh'
}
}
}
post {
always {
junit 'target/surefire-reports/*.xml'
archiveArtifacts artifacts: 'target/*.jar', fingerprint: true
}
}
} BASH
docker run -d --name prometheus -p 9090:9090 prom/prometheus
docker run -d --name grafana -p 3000:3000 grafana/grafana
YAML
scrape_configs:
- job_name: 'jenkins'
static_configs:
- targets: ['<jenkins_server_ip>:<jenkins_server_port>/prometheus']
GROOVY
pipeline {
agent any
tools {
jdk 'JDK11'
}
environment {
DOCKER_IMAGE = 'quickdelivery/app'
}
stages {
stage('Checkout') {
steps {
git 'https://github.com/your-repo/quickdelivery.git'
}
}
stage('Build') {
steps {
script {
docker.image('maven:3.6.3-jdk-11').inside {
sh 'mvn clean package'
}
}
}
}
stage('Test') {
steps {
script {
docker.image('maven:3.6.3-jdk-11').inside {
sh 'mvn test'
}
}
}
}
stage('Build Docker Image') {
steps {
script {
sh 'docker build -t ${DOCKER_IMAGE} .'
}
}
}
stage('Push Docker Image') {
steps {
script {
withCredentials([string(credentialsId: 'dockerhub-password', variable: 'DOCKERHUB_PASSWORD')]) {
sh 'echo $DOCKERHUB_PASSWORD | docker login -u your-dockerhub-username --password-stdin'
sh 'docker push ${DOCKER_IMAGE}'
}
}
}
}
stage('Deploy') {
steps {
script {
sh 'docker run -d -p 8080:8080 ${DOCKER_IMAGE}'
}
}
}
}
post {
always {
emailext (
subject: "Build ${currentBuild.fullDisplayName}",
body: "Check console output at ${env.BUILD_URL} to view the results.",
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)
}
failure {
emailext (
subject: "Build ${currentBuild.fullDisplayName} FAILED",
body: "Build failed. Check console output at ${env.BUILD_URL} to view the results.",
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)
}
}
}