使用CODING构建微服务项目

废话不多说,我直接上我的开发过程。coding的注册啥之类的我就不描述了,能玩Devops的人,那些肯定妥妥的....

CODING官网,安装引导注册用户之类的.....

进入到工作台

  1. 点击项目image-20210419165526182

  2. 创建一个新的项目,并选择DevOps模板image-20210419165921154

  3. 点击代码仓库,然后导入外部仓库,是否开源看自己选择,然后完成创建image-20210419170114862

  4. 此时想3分钟静静便可

  5. 点击持续集成,我这里选择的是JAVA+Spring+docker的模板image-20210419170915794

  6. image-20210419171222753image-20210419171412743

  7. 上一步中的公钥需要配置在目标服务中,参考publish over ssh实现Jenkins远程部署

  8. image-20210419171713821

  9. 构建计划-基础信息image-20210419171740575

  10. 构建计划-流程配置image-20210419171836719

     脚本详情:
     pipeline {
       agent any
       stages {
         stage('检出') {
           steps {
             checkout([$class: 'GitSCM',
             branches: [[name: GIT_BUILD_REF]],
             userRemoteConfigs: [[
               url: GIT_REPO_URL,
               credentialsId: CREDENTIALS_ID
             ]]])
           }
         }
         stage('编译') {
           steps {
             echo "正在构建${env.module}服务...."
             sh "mvn install -pl ${env.module} -am"
             echo "${env.module}服务已完成打包!!!"
           }
         }
         stage('传输文件') {
           steps {
             echo '正在传输文件.....'
             sh 'sshpass -p ${PASSWORD} scp -P ${REMOTE_SSH_PORT} ${WORKSPACE}/${module}/target/*.jar ${REMOTE_USER_NAME}@${REMOTE_HOST}:${REMOTE_PATH}/${module}'
             sh 'sshpass -p ${PASSWORD} scp -P ${REMOTE_SSH_PORT} ${WORKSPACE}/${module}/src/main/resources/Dockerfile ${REMOTE_USER_NAME}@${REMOTE_HOST}:${REMOTE_PATH}/${module}'
             sh 'sshpass -p ${PASSWORD} scp -P ${REMOTE_SSH_PORT} ${WORKSPACE}/${module}/src/main/resources/Jenkinsfile ${REMOTE_USER_NAME}@${REMOTE_HOST}:${REMOTE_PATH}/${module}'
             echo '文件传输完成!!!!!'
           }
         }
         stage('部署到远端服务') {
           steps {
             script {
               def remoteConfig = [:]
               remoteConfig.name = "my-remote-server"
               remoteConfig.host = "${REMOTE_HOST}"
               remoteConfig.port = "${REMOTE_SSH_PORT}".toInteger()
               remoteConfig.allowAnyHosts = true
    
               withCredentials([
                 sshUserPrivateKey(
                   credentialsId: "${REMOTE_CRED}",
                   keyFileVariable: "privateKeyFilePath"
                 ),
                 usernamePassword(
                   credentialsId: "${CODING_ARTIFACTS_CREDENTIALS_ID}",
                   usernameVariable: 'CODING_DOCKER_REG_USERNAME',
                   passwordVariable: 'CODING_DOCKER_REG_PASSWORD'
                 )
               ]) {
                 // SSH 登陆用户名
                 remoteConfig.user = "${REMOTE_USER_NAME}"
                 // SSH 私钥文件地址
                 remoteConfig.identityFile = privateKeyFilePath
                 sshCommand(
                   remote: remoteConfig,
                   command: "sh ${REMOTE_PATH}/${module}/Jenkinsfile",
                   sudo: true,
                 )
                 echo "部署成功!!!"
               }
             }
    
           }
         }
       }
     }
    
  11. 其中有一些变量需要在变量与缓存这里设置,当然有其它可以自建变量image-20210419173653026

  12. 保存,出去构建一下即可

我这里没用他自带的docker,因为周末尝试了下,在打包镜像的时候失败了,Dockerfile找不到相应的jar包,还是不太熟悉这个软件构建下的结构,如果有了解的大佬指导下哈,嘻嘻。

Q.E.D.


一个热爱生活的95后精神小伙