最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 如何实现微信小程序持续集成

    正文概述 掘金(L、y)   2021-07-13   721

    写在前面

    如何实现微信小程序持续集成

    痛点

    具体流程

    如何实现微信小程序持续集成

    ok,那我们开始脚本的编写

    安装

    job_install: # 表示安装的任务
        stage: install # 对应上面定义的stages
        image: node:10.13.0 # 指定当前job需要使用的docker镜像 
        script: # 运行的命令   
            - yarn  --pure-lockfile 
        only: # 指定需要打包的分支
            - master 
        artifacts:   
            paths: # 指定需要打包的文件的路径
                - node_modules
    

    构建

    job_build:
        stage: build
        image: node:10.13.0
        script:   
            - yarn build   
            - VERSION=$(git rev-parse --short HEAD)-stable ROBOT=2 DESCRIPTION=$(git log -1 --pretty=%B) node deploy.js
        only:    
            - master
    

    这里我们在构建完之后,执行deploy.js时,加上了version、robot、description为环境变量

    1. version:版本号,我们使用git rev-parse --short HEAD来获取commit SHA,以达到追溯的效果

    2. robot:开发者,由于小程序的体验版与上传的开发者绑定,所以我们固定1个机器人专门来上传体验版

    3. descirption:版本描述,我们使用git log -1 --pretty=%B来自动获取commit message

    部署

    1.安装工具

    yarn add miniprogram-ci
    

    2.生成秘钥

    开发 -> 开发管理 -> 开发设置 -> 小程序代码上传 -> 小程序上传秘钥 -> 重置

    随后下载保存生成的秘钥到本地根目录中,命名为private.key

    3.开启白名单

    配置gitlab的外网IP

    如何实现微信小程序持续集成

    4.部署代码

    deploy.js

    const ci = require('miniprogram-ci') // 引入ci包
    const projectConfig = require('./project.config.json') // 引入项目文件,这里主要是用来获取appid
    const {VERSION: version, DESCRIPTION: desc, ROBOT: robot} = process.env; // 上一步提供的环境变量参数
    const project = new ci.Project({    appid: projectConfig.appid,    
        type: 'miniProgram',   
        projectPath: projectConfig.miniprogramRoot, // 构建后的目录
        privateKeyPath: './private.key',  // 秘钥
        ignores: ['node_modules/**/*', 'src/*'],
    });
    async function upload({version, desc, robot}) {
        const result = await ci.upload({
            project,
            version,
            desc,
            robot,
            setting: {
                minify: true,
                autoPrefixWXSS: true
            },
            onProgressUpdate: console.log
        })
        console.log(result); // 输出上传内容
    }
    upload({ version, desc, robot })
    

    最终代码

    .gitlab-ci.yml

    stages:
      - install
      - build
    job_install: # 表示安装的任务
      stage: install # 对应上面定义的stages
      image: node:10.13.0 # 指定当前job需要使用的docker镜像
      script: # 运行的命令
        - yarn  --pure-lockfile
      only: # 指定需要打包的分支
        - master
      artifacts:
        paths: # 指定需要打包的文件的路径
          - node_modules
    job_build:
      stage: build
      image: node:10.13.0
      script:
        - yarn build
        - VERSION=$(git rev-parse --short HEAD)-stable ROBOT=2 DESCRIPTION=$(git log -1 --pretty=%B) node deploy.js
      only:
        - master
    

    效果

    如何实现微信小程序持续集成

    大功告成!


    下载网 » 如何实现微信小程序持续集成

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元