一分钟开始持续集成之旅系列之微信公众号服务器端应用以-Java-后端为基础

3次阅读

共计 2260 个字符,预计需要花费 6 分钟才能阅读完成。

作者:CODING – 朱增辉

前言

本文是 CODING 持续集成自定义构建节点功能 的使用教程,通过一个为微信公众号启用开发配置的 Demo 演示,讲解如何接入自定义构建节点,如何使用自定义构建节点进行构建、测试、部署服务器。

准备工作

环境

本文会使用到如下工具,请确认已安装,或者根据链接的文档进行安装。

  • git
  • Java
  • Maven

开发微信公众号还需要提前准备好下面两项资源。

微信公众号

微信公众号可以在微信公众平台官网申请,平台也提供了详细的开发帮助文档。

服务器

这里的服务器指的是能够让微信服务器访问到的计算机,用来运行本文的服务端程序。很多公司都提供了云服务器租赁,还是很方便获取的。这里推荐腾讯云平台的 CVM,临时用的话,竞价实例真的很划算。

代码

本文重点是介绍 CODING 平台持续集成自定义构建节点功能,具体的业务逻辑并不重要,这里已提前准备好了一份演示代码,可以结合下面的步骤实际操作。

代码本身比较简单,需要特别说明的是,为了能够重复部署,代码引入了 Spring Boot Actuator 支持调用 API 退出服务器进程。

步骤一 准备构建计划

在左侧菜单栏选择 构建计划 ,在打开的页面中点击 新建构建计划配置

为简化构建计划配置,CODING 提供了丰富的模板供选择,这里我们选择 Java 编译部署 jar 包 模板。

该模板支持将构建出的 jar 包通过 ssh 的方式传输到远端服务器,并执行命令启动。本文使用自定义构建节点的方式,可以直接在服务器上进行构建、部署,不需要传输,因此这里远端服务器的配置信息留空即可。

调整后的构建脚本(即代码中 Jenkinsfile 文件的内容)如下,您可以在此基础上按自己的需要调整。

def VERSION = ""

pipeline {
  agent any
  stages {stage('检出') {
      steps {
        checkout([$class: 'GitSCM',
        branches: [[name: env.GIT_BUILD_REF]],
        userRemoteConfigs: [[
          url: env.GIT_REPO_URL,
          credentialsId: env.CREDENTIALS_ID
        ]]])
        script {def pom = readMavenPom()
             VERSION = pom.getVersion()
             println "current version ${VERSION}"
        }
      }
    }
    stage('单元测试') {
      steps {sh 'mvn clean test'}
    }
    stage('编译') {
      steps {sh 'mvn clean package -Dmaven.test.skip=true'}
    }
    stage('部署') {
      steps {
        sh "curl -X POST localhost/actuator/shutdown || true"
        sh "JENKINS_NODE_COOKIE=dontKillMe nohup java -Dserver.port=80 -jar ${env.WORKSPACE}/target/demo-${VERSION}.jar > log &"
      }
    }
  }
}

这里有两点需要特别说明:
(1)为方便重复部署,构建脚本在部署前会调用 actuator/shutdown API 退出正在运行的服务进程。
(2)CODING CI 底层是基于 Jenkins 实现的,而 Jenkins 在构建任务结束后会停掉此次任务创建出来的所有进程,因此在部署时添加了环境变量 JENKINS_NODE_COOKIE=dontKillMe 以阻止 Jenkins 停掉部署的服务器进程。

步骤二 接入自定义构建节点

从左侧菜单栏打开 持续集成 下的 构建节点 页面,选择想要添加节点的节点池,CODING 为每个项目都创建了一个 default 节点池,这里我们就选择 default 节点池,在打开的右侧面板里点击 接入新节点,然后根据待接入节点的操作系统点击相应栏目。

点击 生成接入配置并复制 即可得到接入命令。本文使用预装 Linux 系统的腾讯云 CVM 机器作为节点,因此选择 Linux 栏目生成接入命令,并在 Shell 中执行,即可自动完成初始化、注册、启动的过程。

实际上,接入命令是一段 Shell 脚本,主要用来下载、执行 cci-agent 程序。cci-agent 是 CODING 专门为自定义构建节点功能开发的客户端程序,您可以执行 ./cci-agent help 命令来查看更详细的使用说明。

执行完接入命令后,您可以在节点池页面看到新接入的节点,节点状态会由 准备中 变为 闲置,此时,您就可以使用该节点进行构建了。

步骤三 使用自定义节点进行部署

接入自定义构建节点后,还需要调整构建计划配置,指定构建计划使用自定义节点进行构建。打开构建计划设置页面,在 基础信息 页面下找到 节点池配置 选项,选择拟使用的节点池,这里选 default 节点池。

配置修改后点击 保存修改 ,然后在 构建计划 页面点击 立即构建,构建完成后服务器即部署完成了。

步骤四 配置微信公众号

首先找到构建节点的公网 IP,如果您也是使用的腾讯云 CVM 机器,可以在腾讯云云服务器控制台很方便的查到。

打开微信公众号的开发配置页面,点击启用按钮。

在弹出的页面中填写前面步骤部署的服务器程序的相关信息。

点击提交按钮,如果页面没有报错提示,就说明配置成功了,您可以继续开发实现更多的功能。

总结

本文以微信公众号开发为背景,重点演示了 CODING 平台持续集成自定义构建节点功能的使用。通过接入 CODING 平台的持续集成功能,我们实现了微信公众号服务端程序的自动构建、测试和部署,在避免人为错误的同时还节省了时间、提高了效率,希望对您有所帮助。

正文完
 0