接上文适配pg数据库之后需要进行部署,便有了此文
1.下载并安装Jenkins如下:
https://mirrors.jenkins.io/war-stable/2.504.3/jenkins.war
nohup java -jar jenkins.war --httpPort=8080 &
启动Jenkins并解锁安装需要的环境,git,mvn等如下:
2.配置多分支流水线并设置需要拉取的分支
凭据哪里是设置对应git的accessToken值,密码会报错128问题
3.配置项目的Jenkinsfile如下:
pipeline {
agent any
environment {// 多模块配置ADMIN_PROJECT = 'xxl-job-admin'EXECUTOR_PROJECT = 'xxl-job-executor'VERSION = '2.5.0'REMOTE_DIR = '/data/workspace'
}stages {stage('Checkout') {steps {sh 'git clone https://mygit.cn/victorydeng/xxl-job.git'}}stage('Build') {steps {dir('xxl-job') { // 进入仓库目录sh 'mvn clean package -DskipTests'}}}stage('Prepare Artifacts') {steps {// 将构建产物复制到工作区根目录以便传输sh '''mkdir -p target_artifacts && \cp xxl-job/xxl-job-admin/target/xxl-job-admin-${VERSION}.jar target_artifacts/ && \cp xxl-job/xxl-job-executor/target/xxl-job-executor-${VERSION}.jar target_artifacts/'''}}stage('Deploy') {steps {script {// 1. 传输文件并执行部署(合并为一个操作)sshPublisher(publishers: [sshPublisherDesc(configName: '204ssh',transfers: [// 传输admin模块sshTransfer(sourceFiles: 'xxl-job/xxl-job-admin/target/xxl-job-admin-*.jar',removePrefix: 'xxl-job/xxl-job-admin/target',remoteDirectory: "${REMOTE_DIR}",execCommand: """echo '====== DEPLOYING ADMIN ======'cd ${REMOTE_DIR}ADMIN_PID=\$(ps -ef | grep xxl-job-admin | grep -v grep | awk '{print \$2}')[ -n "\$ADMIN_PID" ] && kill -9 \$ADMIN_PIDsleep 2nohup java -Xms512m -Xmx2g -jar xxl-job-admin-${VERSION}.jar \--spring.profiles.active=local > admin.log 2>&1 &echo 'Admin deployed with PID: \$(pgrep -f xxl-job-admin)'"""),// 传输executor模块sshTransfer(sourceFiles: 'xxl-job/xxl-job-executor/target/xxl-job-executor-*.jar',removePrefix: 'xxl-job/xxl-job-executor/target',remoteDirectory: "${REMOTE_DIR}",execCommand: """echo '====== DEPLOYING EXECUTOR ======'cd ${REMOTE_DIR}EXEC_PID=\$(ps -ef | grep xxl-job-executor | grep -v grep | awk '{print \$2}')[ -n "\$EXEC_PID" ] && kill -9 \$EXEC_PIDsleep 2nohup java -Xms512m -Xmx12g -jar xxl-job-executor-${VERSION}.jar \--spring.profiles.active=local > executor.log 2>&1 &echo 'Executor deployed with PID: \$(pgrep -f xxl-job-executor)'""")],usePromotionTimestamp: false,useWorkspaceInPromotion: false,verbose: true)])}}}}post {always {cleanWs()}
}
}
其中的204ssh为如下在Jenkins管理配置的可以访问的服务器名称:
4.执行构建并在远程服务器上部署如下:
查看对应日志:
去到部署加上可以看到已经有对应进程如下:
至此 完成可一个简单版本的自动话部署吧!