用戶
 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

掃一掃,登錄網站

小程序社區 首頁 教程 查看內容

微信小程序和Jenkins不得不說的二三事

Rolan 2019-8-27 00:09

微信開發工具是我們開發微信小程序的重要工具,提供了預覽、上傳代碼的功能,但是里面的上傳代碼在協作過程中是很痛苦的,同時只能有一個預覽版,這個預覽版還是跟某個開發者綁定的。想象下,5個開發者,里面可能要 ...

微信開發工具是我們開發微信小程序的重要工具,提供了預覽、上傳代碼的功能,但是里面的上傳代碼在協作過程中是很痛苦的,同時只能有一個預覽版,這個預覽版還是跟某個開發者綁定的。想象下,5個開發者,里面可能要麻煩1個人專職負責發布。

除此之外,小程序的發布嚴重依賴于開發者以及Ta的電腦,一旦有緊急情況可能就面臨無人可發的問題。

在我們的團隊中就遇到這樣那樣的問題,我們都知道 jenkins 用來做自動化構建,在很多項目中都會用它,所以最終開發了 mimi-deploy 腳本插件來配合 jenkins 使用。

當然 mini-deploy 不僅限于此,也可以在任何 node.js 的環境中執行并和您的程序配套使用,想象力有多大,效率就有多大。

本來以在 jenkins 中使用的角度來介紹 mini-deploy 的使用,讓我們開始吧。

1. 準備要求

要求如下:

  • 運行在 windows 或 Mac 系統的電腦
  • jenkins 運行在該電腦
  • 微信開發工具安裝在該電腦
  • 一個微信號

2. 如何配置

2.1 創建任務

假設我們已經運行 jenkins ,點擊"新建任務"開始填寫任務信息,輸入任務名稱并選擇"構建一個自由風格的軟件項目"。

如果需要創建多個任務,可以最后的"復制"功能。

2.2 配置任務

2.2.1 源碼管理

"源碼管理"中配置項目代碼,以 Git 為例,需要配置兩個參數:

$branch

 ?

2.2.2 參數化構建過程

在"General"中勾選"參數化構建過程",然后點擊"添加參數",在候選列表中選擇 Git Parameter,配置以下兩項:

Name
Parameter Type

這樣在前面"源碼管理"中配置的 $branch 就可以訪問到倉庫的所有分支。

另外還需要添加兩個文本參數: upload_version 和 upload_desc (用于發布小程序時的版本號和描述)。

 ?以及一個選項參數: build_type (指定打包小程序的目標環境)。候選數據一行一條記錄輸入即可。

2.2.3 添加構建執行Shell

在"構建"中點擊"增加構建步驟"按鈕,在候選列表中選擇"執行 shell"。

這一步是最關鍵之處,我們會調用 mini-deploy 來發布小程序,先貼出來我在用的 shell 腳本:

#!/bin/bash
echo -------------------------------------------------------
echo 代碼分支: ${GIT_BRANCH}
echo -------------------------------------------------------
# 準備工作

# 加速包安裝以及node-sass
# 因為使用的是taro,所以會有node-sass
yarn config set registry https://registry.npm.taobao.org
yarn config set sass_binary_site https://npm.taobao.org/mirrors/node-sass

# 安裝依賴
yarn install 

# 刪除dist并執行打包
if [ "$build_type" == "dev" ]
  then
  rm -rf dist && yarn run build
else
  rm -rf dist && yarn run $build_type
fi

if [ "$build_type" == "prod" ] || [ "$build_type" == "build" ]
  then
    mini-deploy --mode=upload --ver=$upload_version --desc="$upload_desc" --login.format=image --login.qr='login.png' --no-resume

    let "result |= $?"

    if [ "$result" == "0" ]
      then
        # 發送通知到釘釘群
        yarn run notify
      fi
else
  rm -rf ./preview.png
  rm -rf ./login.png
  mini-deploy --mode=preview --login.format=image --login.qr='login.png' --no-resume
  
  let "result |= $?"
      
  if [ "$result" == "2" ]
    then
        echo "need login"
  fi
fi

使用 mini-deploy 時有兩種方式:開發預覽和上傳代碼,這里需要講解下里面參數的用處。

用戶掃碼登錄微信開發工具后,過了一段時間可能被登錄失效,這個時候再調用上傳和預覽是無效的,我們要再次掃碼登錄。在 mini-deploy 中需要登錄時會自動重新獲取登錄二維碼, login.format 和 login.qr 就是指定二維碼的存儲方式和文件名,目前包含 terminal (命令行輸出), base64 , image 三類。

因為 jenkins 中無法實時獲取執行結果,我們需要配置 no-resume 阻止 mini=deploy 自從續傳任務,獲取到登錄二維碼后直接完成任務。

另外,我們配置二維碼的格式為 image ,并且輸出到項目工作區的 login.png 中,接下來再配合其他配置我們就可以在 jenkins 中看到登錄二維碼。

# 上傳代碼
mini-deploy --mode=upload --ver=$upload_version --desc="$upload_desc" --login.format=image --login.qr='login.png' --no-resume

# 預覽
mini-deploy --mode=preview --login.format=image --login.qr='login.png' --no-resume

2.2.4 二維碼結果展示

在"構建后操作"中點擊"增加構建后操作步驟",選擇 Set build description :

  • Regular expression : \[mini-deploy\] (.*)
  • Description : \1  ?

這里配置是為了把提醒信息顯示出來,這樣才能告知用戶需要登錄,以及顯示開發碼、上傳的成功信息。

// 日志中包含這樣一條記錄
[mini-deploy] 進入Build詳情掃開發碼進入小程序'

// 匹配成功后,`\1`就代表以下信息
進入Build詳情掃開發碼進入小程序

3. 運行結果

大功告成,最終我們的運行結果如下:

  • 開發預覽版可以再構建歷史掃描二維碼進入
  • 需要登錄時就顯示登錄二維碼
  • 上傳代碼成功則只提示信息

鮮花
鮮花
雞蛋
雞蛋
分享至 : QQ空間
收藏
原作者: idayer 來自: idayer
不朽的浪漫援彩金
30选5开奖结果查询时间 p62黑龙江开奖结果第229期 捕鱼达人千炮版官方下载 福建麻将胡牌公式图解 辽宁快乐12开奖走势图图 宁夏11选五走势图规律 即嗨比分app下架了吗 京东方股票行情 辉煌棋牌5000上庄游戏 5分快3是正规彩票吗 江苏11选5遗漏数据查询 18选7开奖号码表 杭州麻将技巧实战讲解 股票开盘前的竞价 e球彩3场全包24元 麻将对对胡