前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​一分钟开始持续集成之旅系列之:微信公众号服务器端应用(以 Java 后端为基础)

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

原创
作者头像
腾讯云 CODING
发布2020-06-29 17:01:36
5420
发布2020-06-29 17:01:36
举报
文章被收录于专栏:CODING DevOpsCODING DevOps

作者:CODING - 朱增辉

前言

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

准备工作

环境

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

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

微信公众号

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

服务器

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

代码

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

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

步骤一 准备构建计划

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

ci-empty
ci-empty

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

ci-module
ci-module

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

ci-module
ci-module

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

代码语言:txt
复制
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 节点池,在打开的右侧面板里点击接入新节点,然后根据待接入节点的操作系统点击相应栏目。

agent-sh
agent-sh

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

agent-start
agent-start

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

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

agent-idle
agent-idle

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

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

ci-job-agent
ci-job-agent

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

ci-build-success
ci-build-success

步骤四 配置微信公众号

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

tencent-cvm
tencent-cvm

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

wxoa-enable
wxoa-enable

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

wxoa-config
wxoa-config

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

总结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 准备工作
    • 环境
      • 微信公众号
      • 服务器
    • 代码
    • 步骤一 准备构建计划
    • 步骤二 接入自定义构建节点
    • 步骤三 使用自定义节点进行部署
    • 步骤四 配置微信公众号
    • 总结
    相关产品与服务
    CODING DevOps
    CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档