1 construcción del proyecto Maven
1.1 Instale el complemento de integración de Maven
1.2 Crear un proyecto Maven
1.3 Elementos de configuración
El proceso de extracción de código e implementación remota es el mismo que el de un proyecto de estilo libre, excepto por la parte de "compilación".
2 Construcción de proyecto de oleoducto
2.1 Introducción a Pipeline
1) Concepto
Pipeline, en términos simples, es un conjunto de marcos de flujo de trabajo que se ejecutan en Jenkins, que conecta tareas que originalmente se ejecutan de forma independiente en uno o varios nodos, y realiza un trabajo de visualización y orquestación de procesos complejos que es difícil de completar con una sola tarea.
2) El uso de Pipeline tiene las siguientes ventajas
- Código: la canalización se implementa en forma de código y generalmente se registra en el control del código fuente, lo que permite al equipo editar, revisar e iterar su proceso de entrega.
- Durable: ya sea que se trate de un reinicio del servidor planificado o no planificado, Pipeline es recuperable.
- Se puede detener: Pipeline puede recibir información interactiva para determinar si continuar con la ejecución de Pipeline.
- Multifuncional: Pipeline admite requisitos complejos de entrega continua en el mundo real. Admite bifurcación / unión, ejecución de bucle y ejecución paralela de tareas.
- Extensible: el complemento Pipeline admite extensiones personalizadas de su DSL, así como múltiples opciones para la integración con otros complementos.
3) ¿Cómo crear Jenkins Pipeline?
- La secuencia de comandos de canalización se implementa mediante el lenguaje Groovy, pero no es necesario que aprendamos por separado
- GroovyPipeline admite dos sintaxis: sintaxis declarativa (declarativa) y canalización con secuencias de comandos (con secuencias de comandos)
- También hay dos formas de crear Pipeline: puede ingresar directamente el script en la interfaz de la interfaz de usuario web de Jenkins; también puede crear un
archivo de script Jenkinsfifile y colocarlo en la biblioteca de código fuente del proyecto (generalmente recomendamos directamente desde el control de código fuente ( SCM) en Jenkins) Cargue
Jenkinsfifile Pipeline directamente ).
2.2 Instalar el complemento Pipeline
Administrar Jenkins-> Administrar complementos-> Complementos opcionales
Después de instalar complementos, hay más tipos de "canalización" al crear proyectos (consulte el caso a continuación)
2.3 Inicio rápido de la sintaxis de la canalización
1) Pipeline declarativo
Cree la
canalización del proyecto -> seleccione la plantilla HelloWorld, el
contenido generado es el siguiente
- etapas: representa todas las etapas de ejecución de todo el pipeline, por lo general solo hay una etapa, que contiene múltiples etapas.
- etapa: representa una determinada etapa en la canalización, puede aparecer n. Generalmente, se divide en etapas, como extraer código, compilar y construir e implementar.
- pasos: representa la lógica que debe ejecutarse en una etapa. Dentro de los pasos se encuentran los scripts de shell, los códigos de extracción de git, la publicación remota de ssh, etc.
Escribe una canalización declarativa simple:
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
echo '拉取代码'
}
}
stage('编译构建') {
steps {
echo '编译构建'
}
}
stage('项目部署') {
steps {
echo '项目部署'
}
}
}
}
Haga clic en construir, puede ver todo el proceso de construcción
2 Pipe Pipeline con script 脚本 式 -Pipeline
Crear proyecto
node {
def mvnHome
stage('Preparation') {
// for display purposes
// Get some code from a GitHub repository
git 'https://github.com/jglick/simple-maven-project-with-tests.git'
// Get the Maven tool.
// ** NOTE: This 'M3' Maven tool must be configured
// ** in the global configuration.
mvnHome = tool 'M3'
}
stage('Build') {
// Run the maven build
withEnv(["MVN_HOME=$mvnHome"]) {
if (isUnix()) {
sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
} else {
bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
}
}
}
stage('Results') {
junit '**/target/surefire-reports/TEST-*.xml'
archiveArtifacts 'target/*.jar'
}
}
- Nodo: Nodo. Un Nodo es un nodo Jenkins. Master o Agent es
el entorno operativo específico para ejecutar Step . Se utilizará cuando hablemos de la arquitectura Master-Slave de Jenkins más adelante. - Etapa: una canalización se puede dividir en varias etapas, cada etapa
representa un grupo de operaciones, como: construir, probar, implementar, etapa es un concepto de agrupación lógica.
Paso: Paso. El paso es la unidad de operación más básica. Puede ser imprimir una oración o crear una imagen de Docker. Se proporciona mediante varios complementos de Jenkins, como el comando: sh'make ', que equivale a ejecutar en nuestro terminal de shell habitual. El comando make es el mismo.
Escriba un Pipeline con script simple, ¡el resultado de la construcción es el mismo que el declarativo!
node {
def mvnHome
stage('拉取代码') {
// for display purposes
echo '拉取代码'
}
stage('编译构建') {
echo '编译构建'
}
stage('项目部署') {
echo '项目部署'
}
}
paso 1: código de extracción
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ff7972f4-c4bb-4b3b-a6c1-f6fdda5bbdea', url: 'http://10.99.200.110:8888/test/test-war.git']]])
}
}
}
}
paso 2: compila y construye
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ff7972f4-c4bb-4b3b-a6c1-f6fdda5bbdea', url: 'http://10.99.200.110:8888/test/test-war.git']]])
}
}
stage('编译构建') {
steps {
sh label: '', script: 'mvn clean package'
}
}
}
}
paso 3: implementación del proyecto
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'ff7972f4-c4bb-4b3b-a6c1-f6fdda5bbdea', url: 'http://10.99.200.110:8888/test/test-war.git']]])
}
}
stage('编译构建') {
steps {
sh label: '', script: 'mvn clean package'
}
}
stage('项目部署') {
steps {
deploy adapters: [tomcat9(credentialsId: '6d072e85-02b4-4874-a0fa-c6eecb77fe79', path: '', url: 'http://10.99.200.111:8080')], contextPath: null, war: 'target/*.war'
}
}
}
}
3) Script de canalización de SCM
En este momento estamos escribiendo el código de la canalización directamente en la interfaz de usuario de Jenkins, lo que no es conveniente para el mantenimiento de la secuencia de comandos. Se recomienda poner la secuencia de comandos de la canalización en el proyecto (para llevar a cabo el control de versiones en conjunto)
Paso 1: escriba el archivo Jenkinsfifile
Cree un archivo Jenkinsfifile en el directorio raíz del proyecto, copie el contenido en el archivo, luego envíelo y envíelo a gitlab
o
cree un archivo Jenkins en la ruta raíz del proyecto actual de gitlab y copie el contenido en el archivo.
Aquí hay un ejemplo de cómo operar directamente en gitlab
paso 2: referencia al archivo en el proyecto
paso 3: construir inmediatamente
paso 4: verificación del proyecto
Está todo aquí Para obtener más artículos, consulte la cuenta pública personal de WeChat. TODO En Linux, ¡escaneémoslo!