Jenkins (2) Grammaire rapide de la grammaire des pipelines

jenkins (二)

Blocage de la syntaxe du pipeline

Tags: Exploitation et maintenance Intégration continue Jenkins

Description générale:

Afin de livrer le document, rédigez d'abord une version rapide, le but est que d'autres collègues configurent et utilisent rapidement sur la base de ce modèle, et continuent à étudier en profondeur plus tard.

Lorsque j'ai vérifié les informations, j'ai vu cet article:

Jenkins pipeline script écriture partage de pratique (3)

Sachant qu'il est encore un jeune frère à cet égard, il doit encore continuer à étudier en profondeur.

1. Modèle de grammaire

Configuration:

pipeline {
    agent any
    stages {
         stage('pullcode'){
            steps{
                checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: ''
                , excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: ''
                , locations: [[cancelProcessOnExternalsFail: true, credentialsId: 'd4dc650e-a10e-487a-bad9-d6dbf7ee4f45', depthOption: 'infinity'
                , ignoreExternalsOption: true, local: '.', remote: 'http://39.98.82.231:86/svn/gkg/ws/ws/trunk']], quietOperation: true
                , workspaceUpdater: [$class: 'UpdateUpdater']])
            }
        }

        stage('Build') {
            steps {
                sh '''
                    echo "开始编译打包过程"
                    mvn clean && mvn package -DskipTests=true
					echo "编译打包过程结束"
                '''
            }
        }
        stage('Test'){
            steps {
                sh 'echo "Test stage"'
            }
        }
        stage('Deploy') {
        	steps {
                withEnv(['JENKINS_NODE_COOKIE=dontkillme']) {
                    sh '''
						echo "关闭服务"
						ssh [email protected] "cmd /c net stop jenkins_test"
						echo "删除原始文件"
						ssh [email protected] "cmd /c rd/s/q D:/root/apache-tomcat-8.5.24/webapps"
						echo "开始使用scp传输文件"
						scp "${WORKSPACE}/target/ws.war"  [email protected]:/
						echo "开始调用远程tomcat进行重启"
						ssh [email protected] "cmd /c  net start jenkins_test"
					'''
                }
        	}
        }
    }
}

1.1 Présentation

Ce script définit quatre pullcodeétapes: Build, Test,, à Deploysavoir obtenir le code, la compilation, le test, la libération.

1.2 code de traction

Obtenez le code

Référence

"Jenkins Use Document" 2.5 Générer une instruction Get Code

Copiez le code généré directement dans:

stage('pullcode'){
    steps{
        //复制到此处
    }
}

1.3Construire

Compiler le code

sh 声明使用shell命令 使用shell执行后面的命令
Pipeline使用groovy的语法,三个```包裹的内容是一个字符串,并可以在其中引用变量
echo shell输出命令
mvn clean && mvn package -DskipTests=true  mvn命令,打包并跳过测试,可根据自己的需求指定参数

1.4Test

Il n'y a actuellement aucune session de test, passez pour l'instant

1.5Devlop

withEnv(['JENKINS_NODE_COOKIE=dontkillme']) {}
用于声明该模块下的语句进程终止后,不关闭子进程

Avant que la communication entre jenkins et le serveur de déploiement ne soit configurée, vous pouvez directement utiliser ssh pour faire fonctionner le serveur distant:

ssh [email protected] "cmd /c net stop jenkins_test"
在192.168.124.9服务器上执行“net stop jenkins_test”命令,关闭jenkins_test服务(注册的tomcat服务)
ssh [email protected] "cmd /c rd/s/q D:/root/apache-tomcat-8.5.24/webapps"
在192.168.124.9服务器上执行“rd/s/q D:/root/apache-tomcat-8.5.24/webapps”命令,删除rd/s/q D:/root/apache-tomcat-8.5.24/webapps路径下所有文件及文件夹
scp "${WORKSPACE}/target/ws.war"  [email protected]:/
使用scp传输文件
WORKSPACE为环境变量,是该项目的路径
scp后面跟的是需要传输的文件,需要根据各位编译打包生成的文件名修改该参数,也可以使用合适的环境变量使用动态的语句。
scp后面第二个参数跟传输目标:root是登录远程服务的身份;@号跟ip地址;:后跟路径。该路径根据目标服务器而定,如果根据《jenkins使用文档》1.1windows 配置ssh服务,则/对应的是freeSSHd配置的SFTP home path。其他路径依此路径改写。
ssh [email protected] "cmd /c  net start jenkins_test"
在192.168.124.9服务器上执行“net start jenkins_test”命令,开启jenkins_test服务(注册的tomcat服务)

Je suppose que tu aimes

Origine www.cnblogs.com/cxy2016/p/12705422.html
conseillé
Classement