使用VS Team Services自動建置簽入GitHub的Android項目

jopen 8年前發布 | 23K 次閱讀 Visual Studio

使用VS Team Services自動建置簽入GitHub的Android項目

Visual Studio Team Services (VSTS。原名:Visual Studio Online)是提供給開發人員或團隊協助開發工作的線上服務,它提供了像是項目管理、版本控制、自動建置、自動測試、部署發行管理等功能,并且支持各種語言、開發平臺或是 IDE 工具等,如果是五人以下的團隊可以免費開始使用。(詳細功能與價格可參考這頁說明

目標

這篇文章要完成的任務,是以 Android 項目為例子,并且使用 GitHub  為版本控制的工具(當然也可以用 VSTS 作版本控制,也支持 Git),而主角 VSTS 則是用來根據設定來自動執行建置項目的工作,自動產生建置好的 apk 檔案以便后續的發行部署。

操作步驟

Android 項目

本文中的例子,是以  Android Studio 所產生的項目結構為例子,這里不必做任何特殊的設定或修改,就像一般一樣使用它來建立項目即可,而 VSTS 內建的 Android 建置范本是使用 gradle 腳本,所以如果關于建置工作的設定,可以修改 build.gradle 檔案的內容即可。

目前在 VSTS 上的 Android 建置環境,JDK 的部份支持到 8,而 Android 建置工具支持到 API Level 22,并且還不支持 Android Support Repository 以及 Android Support Library,如果需要這些函式庫,可參考另一篇 [使用專屬建置伺服器](coming soon) 一文。

本文的項目設定是 compilerSdkVersion: 19, buildToolsVersion: "19.1.0", minSdkVersion: 19, targetSdkVersion: 19,沒有使用 Android Support Repository 及 Android Support Library。

將項目原始碼發布到 GitHub 也可以是預設的 Android Studio 所產生的項目架構,像是這樣:

使用VS Team Services自動建置簽入GitHub的Android項目

設定 VSTS 的建置規則

登入 VSTS 后,首先建立一個項目,因為這里沒有特別提到項目管理以及版本控制的部份,所以您可以依據您的喜好設定。

使用VS Team Services自動建置簽入GitHub的Android項目

建立好項目后,在項目頁面中切換至 BUILD 的頁面:

使用VS Team Services自動建置簽入GitHub的Android項目

在 BUILD 頁面中就要開始設定建置的腳本,按下建立新腳本的按鈕:

使用VS Team Services自動建置簽入GitHub的Android項目

然后選擇 Empty 范本開始建置:

使用VS Team Services自動建置簽入GitHub的Android項目

選擇 Empty 范本后按 Next 進到下一步基本設定,這里因為我們是以 GitHub 為例,所以 Repository type 的部份就選擇 GitHub;agent queue 的部份就選擇 Hosted 來使用 VSTS 的建置環境;而下方的 Continuous integration 勾選的話,每次把代碼簽入 GitHub 時都會驅動建置的工作,若不勾選,可以之后再設定要手動建置或是定期建置。設定完成后,就按下 Create 完成建立。

使用VS Team Services自動建置簽入GitHub的Android項目

產生建置定義后,第一件事是先把 Repository 設定好(一開始會看到它呈現紅色驚歎號),首先要在 Connection 欄位的右側按下 Manage 來設定 GitHub 的帳號密碼,以讓 VSTS 的建置程式能夠連接到您的 GitHub 帳號。

使用VS Team Services自動建置簽入GitHub的Android項目

在管理服務的頁面中,選擇新增一個 GitHub 的 Service Endpoint:

使用VS Team Services自動建置簽入GitHub的Android項目

接著,按下對話盒中的 Authorize 按鈕,這時會跳出一個視窗(注意是否被瀏覽器擋掉)到您 GitHub 的帳號授權存取,完成授權后,為這個連線取一個名字,按下 OK 按鈕就可以完成設定。

使用VS Team Services自動建置簽入GitHub的Android項目

設定完成后,回到建置定義中的 Repository 頁面完成設定,這里就選擇要連結 GitHub 上的 repository、要拿哪個分支來建置、還有是否每次都是 clean build 等等,最后按下上方的 Save 按鈕儲存,同時也會讓您修改這個建置定義的名稱。

使用VS Team Services自動建置簽入GitHub的Android項目

Repository 設定完成后,回到 Build 頁面,我們要在這里加入建置的工作,按下 Add build step... 按鈕選擇工作。


使用VS Team Services自動建置簽入GitHub的Android項目

VSTS 的建置工作很自由,您可以挑選許多工作串接起來,這里我們可以先選擇 Android Build 的工作就可以了。

使用VS Team Services自動建置簽入GitHub的Android項目

在建置定義中加入一個 Android Build 的工作后,最簡單的設定就是把 Gradle Wrapper 設定好,如果是使用 VSTS 的建置環境而不是自建的機器,就要選擇 gradlew.bat 由它來驅動 gradle 的建置命令。其它的欄位可以先不特別設定,而設定完成一樣要按下工具列的 Save 按鈕儲存設定。

使用VS Team Services自動建置簽入GitHub的Android項目

設定的工作到此就完成了(最基本的建置),如果你稍早設定了每次簽入代碼就執行建置的話,可以試著去 commit 一個新的版本來驅動,或是按下工具列上的 Queue build... 按鈕來手動執行,按下后便會開始排程使用 VSTS 的建置環境,按照設定的建置工作逐一完成。

使用VS Team Services自動建置簽入GitHub的Android項目

當建置開始執行后,您會看到一個 Console 顯示這些建置工作正在做的事,或是各種印出來的訊息,可以幫助您檢視建置的工作是否順利進行。在這個例子中,它就會先到設定的 repository 把代碼抓回來,然后開始執行 gradlew.bat build 的指令(依據之前的設定)來進行建置。

如果您看到 BUILD SUCCEED 而 Console 中也沒有什麼錯誤訊息的話,恭喜,自動建置的設定已經能正常運作了!

使用VS Team Services自動建置簽入GitHub的Android項目

啟動建置之后

前一步只是將自動建置的機制做完,那建置完之后的 apk 要如何取得呢?其實按照預設的 gradle 腳本,以及 Android Build 的建置工作,建置完成的 apk 檔會放在 app/build/outputs/apk/app-debug.apk 這個路徑下,所以你可以再選擇一個建置工作接在 Android Build 的工作之后,看是要用什麼方式傳送到發布的平臺,還是結合其它的工作(例如簽署或是測試等等),這里示范的是將建置好的 APK 檔案傳到 Azure 的 Blob 儲存體中。

在建置工作中加入一個新的工作:

使用VS Team Services自動建置簽入GitHub的Android項目

然后設定要上傳的檔案,如前面所說,Source 的欄位就要填入 app/build/outputs/apk/app-debug.apk;剩下就是設定 Azure 帳號,以及上傳到哪個 Azure Blob 儲存體的帳號,以及存放的容器及路徑。

設定完成后,當建置工作啟動時,就會先完成 Android Build 然后再進行 Azure File Copy 的工作。

使用VS Team Services自動建置簽入GitHub的Android項目

結果

透過這樣的設定,開發 Android 項目時僅需專注在應用程序的開發,每次當代碼簽入到 GitHub(或是其它的版本控制系統),就會自動觸發這一連串的自動工作,對于快速交付的需求或是任務上,將可以盡量減少出錯,并且利用自動化來加速整個工作的進行。

來自: blogs.msdn.com

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!