IL-2602

Форк
0
/
Jenkinsfile 
71 строка · 2.3 Кб
1
def app
2

3
pipeline {
4
    agent any
5
    environment {
6
        ENV_TYPE = "production"
7
        PORT = 3263
8
        NAMESPACE = "instalife-fun"
9
        REGISTRY_HOSTNAME = "il2702"
10
        REGISTRY = "registry.hub.docker.com"
11
        PROJECT = "insta-life"
12
        DEPLOYMENT_NAME = "insta-life-deployment"
13
        IMAGE_NAME = "${env.BUILD_ID}_${env.ENV_TYPE}_${env.GIT_COMMIT}"
14
        DOCKER_BUILD_NAME = "${env.REGISTRY_HOSTNAME}/${env.PROJECT}:${env.IMAGE_NAME}"
15
    }
16

17
    stages {
18
        stage('Clone repository') {
19
            steps {
20
                checkout scm
21
            }
22
        }
23
        stage('Build docker image') {
24
            steps {
25
                echo "Build image started..."
26
                    script {
27
                        app = docker.build("${env.DOCKER_BUILD_NAME}")
28
                    }
29
                echo "Build image finished..."
30
            }
31
        }
32
        stage('Push docker image') {
33
             steps {
34
                 echo "Push image started..."
35
                     script {
36
                          docker.withRegistry("https://${env.REGISTRY}", 'instalife-fun') {
37
                            app.push("${env.IMAGE_NAME}")
38
                        }
39
                     }
40
                 echo "Push image finished..."
41
             }
42
       }
43
       stage('Delete image local') {
44
             steps {
45
                 script {
46
                    sh "docker rmi -f ${env.DOCKER_BUILD_NAME}"
47
                 }
48
             }
49
        }
50
        stage('Preparing deployment') {
51
             steps {
52
                 echo "Preparing started..."
53
                     sh 'ls -ltr'
54
                     sh 'pwd'
55
                     sh "chmod +x preparingDeploy.sh"
56
                     sh "./preparingDeploy.sh ${env.REGISTRY_HOSTNAME} ${env.PROJECT} ${env.IMAGE_NAME} ${env.DEPLOYMENT_NAME} ${env.PORT} ${env.NAMESPACE}"
57
                     sh "cat deployment.yaml"
58
             }
59

60
        }
61
        stage('Deploy to Kubernetes') {
62
             steps {
63
                 withKubeConfig([credentialsId: 'prod-kubernetes']) {
64
                    sh 'kubectl apply -f deployment.yaml'
65
                    sh "kubectl rollout status deployment/${env.DEPLOYMENT_NAME} --namespace=${env.NAMESPACE}"
66
                    sh "kubectl get services -o wide"
67
                 }
68
             }
69
        }
70
    }
71
}
72

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.