雲端VSTS透過地端MAC建置iOS專案-以Cordova專案為例

雲端VSTS透過地端MAC建置iOS專案-以Cordova專案為例

VSTS 除了可以透過本身提供的 agent 來建置之外,它也提供 private agent 的設計,意思是自行架設的 agent 來進行 Build 的工作。今天我們需要編譯一個iOS專案,例如,Cordova 專案,VSTS本身沒有提供這個iOS agent,那麼我們需要準備一台 MAC,然後在這台地端 MAC 安裝一支 agent 與 VSTS 連線,這樣雲端的 VSTS 就能發專案發行至地端 MAC。

安裝地端MAC - Agent

以下先建立一組PAT帳號,以便地端的MAC Agent可以與雲端的VSTS連線。

建立Personal access tokens(PAT)

在巡覽列自己帳號選擇「My Profile」,選擇「Security」的頁籤,選擇「PerPersonal access tokens」選擇「Add」,新增後即可取得 Token。

Add Personal access tokens(PAT)
  1. Agent Pool Administrators - allows to register
  2. Agent Pool Service Accounts - allows listening to build queue

如果你沒有權限可加入,可以請管理員幫忙加入。

我在設定時碰到我已經加入 Security 的 Administrators 的群組,還是無法加入上述兩個群組。這時只能請連絡管理員幫忙加入也行。

安裝 xplatagent

開啟 termial,確認在 users home directory,輸入以下指令:

mkdir myagent
cd my agent
curl -skSL http://aka.ms/xplatagent | bash  
 

會看到類似下面的 output 訊息:

curl -sSL http://aka.ms/latestxplat | bash

--------------------------------------
     Installing agent globally 
--------------------------------------

Installing...
script location: .
installing vsoagent-installer ...
Password:

--------------------------------------
     Creating agent 
--------------------------------------

Installing agent to /Users/admindeMac-mini/Testing/test2
Copying:  /usr/local/lib/node_modules/vsoagent-installer/agent /Users/admindeMac-mini/Testing/test2
Copying:  /usr/local/lib/node_modules/vsoagent-installer/node_modules /Users/admindeMac-mini/Testing/test2
making scripts executable
Done.

--------------------------------------
     Acquiring Node 4.2.4 
--------------------------------------

Downloading Node 4.2.4

--------------------------------------
     Agent Installed! Next Steps: 
--------------------------------------

Run and Configure Interactively:
./run.sh

Configure Again:
./configure.sh

See documentation for more options 
 

啟動Agent

admindeMac-mini:myagent admin$ ./run.sh
Enter alternate username > Bruce
Enter alternate password >
Enter server url > https://{yourname}.visualstudio.com
Enter agent name (enter sets admindeMac-mini.local)  >
Enter agent pool name (enter sets default)  >
Enter force basic (enter is false)  >
successful connect as Bruce
Retrieved agent pool: Default (1)
Tue May 10 2016 16:08:16 GMT+0800 (CST) : PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
admindeMac-mini.local
Creating work folder ./_work ...
Creating env file /Users/admin/myagent/env.agent...
Saving configuration ...
2016-05-10T08:08:19.678Z: Agent Started.
 

啟用的指令是 ./run.sh

  1. username:隨便寫。
  2. password:一開始申請的PAT,貼上時畫面不會有反應。
  3. server url:你的VSTS的Url
  4. agent name:顯示VSTS在 pool 裡的名稱,預設按 enter 即可。
  5. agent pool name:建立在那一個 pool 裡,如果沒有新增,預設按 enter 即可。
  6. force basic:按 enter 即可。

如果要停止,按 Ctrl + C。

這裡有個問題,當我們按 Ctrl + C 再重新執行 ./run.sh,必須重新輸入 username 與 password,因為此 script 在執行過程並不保存 password。

VSTS-private agent

紅色是斷線,綠色是連線中。

script判斷是否為新增或重新連線,是依照目錄下是否有個 .agent 的組態檔:

{
  "poolName": "default",
  "serverUrl": "https://{yourname}.visualstudio.com",
  "agentName": "admindeMac-mini.local",
  "basic": false,
  "workFolder": "./_work",
  "logSettings": {
    "maxFiles": 5,
    "linesPerFile": 5000
  }
}  
 

建立與地端 MAC 連線之後,在建立VSTS的BUILD步驟時,選擇我們建立地端的 Pool,這樣設置之後,當 Continuous integration(CI) 被觸發時,VSTS 就能自動把 Cordova 專案同步至地端 MAC 上。

Service

上述的方式,可以方便於測試,但如果是正式環境應該確保 agent 會在重開機後自動執行,這時就能選擇安裝為 Service。

安裝 Service

切換至 agent 所在目錄。安裝 Service 輸入:

./agent/svc.sh install  
 

安裝並執行的話,輸入:

./agent/svc.sh install agent  
 

檢查狀態

./svc.sh status  
 

Stop

./svc.sh stop  
 

Start

./svc.sh start  
 

Restart

./svc.sh restart 
 

解除安裝 Service

./svc.sh uninstall
 

小結

VSTS 本身免費提供一組 private agent 的設置(雲端上的一組MSBuild 240 分鐘免費,所以共二組免費),如果需要增加 private agent 需要付費購買,一組15元美金/月。

參考資料:https://github.com/Microsoft/vso-agent/blob/master/docs/vsts.md

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。