雲端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。
- Agent Pool Administrators - allows to register
- 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 訊息:
啟動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
- username:隨便寫。
- password:一開始申請的PAT,貼上時畫面不會有反應。
- server url:你的VSTS的Url
- agent name:顯示VSTS在 pool 裡的名稱,預設按 enter 即可。
- agent pool name:建立在那一個 pool 裡,如果沒有新增,預設按 enter 即可。
- force basic:按 enter 即可。
如果要停止,按 Ctrl + C。
這裡有個問題,當我們按 Ctrl + C 再重新執行 ./run.sh,必須重新輸入 username 與 password,因為此 script 在執行過程並不保存 password。
紅色是斷線,綠色是連線中。
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
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。