DevsDawn
DevsDawn

使用Jenkins持续集成部署QQ小程序

QQ小程序提供了Docker镜像来对小程序项目进行CI构建(文档)。文档中提供的Github Actions及Drone CI两种CI工具都对Docker的相关操作进行了深度集成,以至于不需要调用docker自身的命令。

而改写成Jenkinsfile也很简单,在检出代码后,只需要先拉取镜像然后运行即可。

操作步骤

  1. 在QQ小程序后台获取AppToken,然后赋值到环境变量PLUGIN_APPTOKEN
  2. 在检出代码后,新建一个拉取镜像的stage,拉取镜像。
    stage('拉取镜像') {
        steps {
          sh 'docker pull qqminiapp/build:latest'
        }
    }
    
  3. 追加部署的stage,运行docker镜像,并根据文档设置传递的参数,我这里把小程序版本设置为CI构建的编号,描述为提交的commit id。
    注意在设置workdir后,还需要-v挂载目录,否则在容器内也无法读取到目录文件。

    stage('部署') {
        steps {
          sh '''docker run --rm --workdir /root/workspace \
                --env PLUGIN_VERSION=${CI_BUILD_NUMBER} \
                --env PLUGIN_DESC=${GIT_BUILD_REF} \
                --env PLUGIN_APPTOKEN=${PLUGIN_APPTOKEN} \
                --env PLUGIN_BUILDUSER=${GIT_AUTHOR_EMAIL} \
                --env PLUGIN_EXPERIENCE=true \
                -v "/root/workspace":"/root/workspace" qqminiapp/build:latest'''
        }
    }
    
  4. 最后整个Jenkinsfile应该为这样。
    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]]])
          }
        }
        stage('拉取镜像') {
          steps {
            sh 'docker pull qqminiapp/build:latest'
          }
        }
        stage('部署') {
          steps {
            sh '''docker run --rm --workdir /root/workspace \
                --env PLUGIN_VERSION=${CI_BUILD_NUMBER} \
                --env PLUGIN_DESC=${GIT_BUILD_REF} \
                --env PLUGIN_APPTOKEN=${PLUGIN_APPTOKEN} \
                --env PLUGIN_BUILDUSER=${GIT_AUTHOR_EMAIL} \
                --env PLUGIN_EXPERIENCE=true \
                -v "/root/workspace":"/root/workspace" qqminiapp/build:latest'''
          }
        }
      }
    }
    
  5. 开始一次构建任务,如果出现手Q打开体验版字样则代表上传成功,可在后台中看到新上传的版本了。

若无特别说明,本文采用 CC BY-SA 4.0 协议进行许可。如需转载,请附上本文链接和本声明。
本文链接:https://devsdawn.com/2020/02/using-jenkins-ci-to-deploy-qq-miniapp/
DigitalOcean云服务,美国上市公司,注册即送200USD体验金
Vultr云服务,全球25+地域,注册即送100USD体验金

发表回复

textsms
account_circle
email

DevsDawn

使用Jenkins持续集成部署QQ小程序
QQ小程序提供了Docker镜像来对小程序项目进行CI构建(文档)。文档中提供的Github Actions及Drone CI两种CI工具都对Docker的相关操作进行了深度集成,以至于不需要调用docker自身的命令。…
扫描二维码继续阅读
2020-02-08