1 集成maven

1.1 安装maven

下载地址
https://maven.apache.org/download.cgi

tar zxf apache-maven-3.6.2-bin.tar.gz -C /app/module
ln -s /app/module/apache-maven-3.6.2-bin /app/module/maven

#设置全局变量(/etc/profile)
export MAVEN_HOME=/app/module/maven
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile

1.2 jenkins配置maven

Jenkins构建工具集成_Shell

1.3 Jenkinsfile

node {
  stage('build') {
    mvnHome = tool 'maven3.6.2'
    //mvnHome = '/app/module/maven'
    sh "${mvnHome}/bin/mvn -v"
  }
}

构建输出

Jenkins构建工具集成_apache_02

2 集成nodejs

2.1 安装nodejs

下载地址
https://nodejs.org/en/download/

tar -xf node-v16.19.1-linux-x64.tar.gz -C /app/module/
cd /app/module/
ln -s node-v16.19.1-linux-x64/ nodejs

#设置全局变量(/etc/profile)
export NODEJS_HOME=/app/module/nodejs
export PATH=$PATH:$NODEJS_HOME/bin
source /etc/profile

2.2 jenkins集成nodejs

需要安装nodejs插件

Jenkins构建工具集成_apache_03

2.3 Jenkinsfile

node {
  stage('build') {
    //npmHome = tool 'nodejs'
    npmHome = '/app/module/nodejs'
    sh "${npmHome}/bin/npm -v"
  }
}

构建输出

Jenkins构建工具集成_apache_04

3 集成ansible

3.1 安装ansible

yum install -y ansible

3.2 Jenkinsfile

String deployHosts='server1,server2'

  stage('Deploy') {
    steps {
	    script {
	      hosts = deployHosts.split(',').toList()
        for (host in hosts){
		      sh "ansible ${host} -m shell -a 'free -h'"
		    }
	    }
	  }
  }

4 构建脚本

参数化构建

Jenkins构建工具集成_apache_05

Jenkins构建工具集成_maven_06

流水线

pipeline {
  agent {
    node {
      label "built-in"
    }
  }
  environment {
    String buildType="${env.buildType}"
    String buildShell="${env.buildShell}"
    mvnHome = tool "maven3.6.2"
    npmHome = "/app/module/nodejs"
  }
  stages {
    stage('Hello') {
      steps {
        script {
          if( buildType == "maven" ){
		        sh "${mvnHome}/bin/mvn ${buildShell}"
		      }else if( buildType == "npm" ){
            sh "${npmHome}/bin/npm ${buildShell}"		  
		      }else {
		        sh "echo error buildType"
		      }
        }
      }
    }
  }
}

Jenkins构建工具集成_apache_07