特里姆,你好!
我想談談我透過 BitBucket 設定 GitLab 和 AppCenter 整合的經驗。
當為 Xamarin 上的跨平台專案設定自動啟動 UI 測試時,就出現了對此類整合的需求。 下面詳細教學截圖!
* 如果公眾有興趣,我將單獨撰寫一篇關於跨平台條件下自動化 UI 測試的文章。
我只挖到了一種這樣的材料
任務:考慮到我們的團隊使用 GitLab 作為版本控制系統,在 AppCenter 上設定自動啟動 UI 測試。
問題 事實證明,AppCenter 並沒有直接與 GitLab 整合。 透過 BitBucket 繞過被選擇作為解決方案之一。
步驟
1.在BitBucket上建立一個空的儲存庫
我認為沒有必要更詳細地描述這一點:)
2. 設定 GitLab
我們需要在推送/合併到儲存庫時,變更也上傳到 BitBucket。 為此,請新增一個運行程式(或編輯現有的 .gitlab-ci.yml 檔案)。
首先我們將指令加入到 before_scripts 部分
- git config --global user.email "user@email"
- git config --global user.name "username"
然後將以下命令新增到所需的階段:
- git push --mirror https://username:[email protected]/username/projectname.git
就我而言,這是我得到的文件:
before_script:
- git config --global user.email "user@email"
- git config --global user.name "username"
stages:
- mirror
mirror:
stage: mirror
script:
- git push --mirror https://****:*****@bitbucket.org/****/testapp.git
我們啟動構建,檢查我們的更改/檔案是否位於 BitBucket 上。
* 如實務所示,設定 SSH 金鑰是可選的。 但是,為了以防萬一,我將在下面提供一個透過 SSH 建立連接的演算法
通過 SSH 連接
首先您需要產生 SSH 金鑰。 關於這一點已經寫了很多文章。 例如,您可以查看
產生的密鑰看起來像這樣:
進一步 秘密鑰匙 需要作為變數加入 GitLab。 為此,請轉到“設定”>“CI/CD”>“環境變數”。 新增保存密鑰的文件的所有內容。 我們將變數命名為 SSH_PRIVATE_KEY。
* 與公鑰檔案不同,該檔案沒有副檔名
太好了,接下來您需要將公鑰新增到 BitBucket 中。 為此,請打開儲存庫並轉到“設定”>“存取密鑰”。
這裡我們點擊「新增金鑰」並插入帶有公鑰的檔案的內容(副檔名為 .pub 的檔案)。
下一步是使用 gitlab-runner 中的金鑰。 使用這些命令,但將星號替換為您的詳細信息
image: timbru31/node-alpine-git:latest
stages:
- mirror
before_script:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d 'r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- git config --global user.email "*****@***"
- git config --global user.name "****"
- ssh -T [email protected]
mirror:
stage: mirror
script:
- git push --mirror https://****:****@bitbucket.org/*****/*****.git
3. 設定應用程式中心
我們在 AppCenter 上建立一個新應用程式。
指定語言/平台
接下來,轉到新建立的應用程式的「建置」部分。 我們在此處選擇 BitBucket 和步驟 1 中建立的儲存庫。
太好了,現在我們需要配置建置。 為此,請找到齒輪圖標
原則上,一切都是直觀的。 選擇項目和配置。 如有必要,請在建置後啟用測試啟動。 它們會自動啟動。
基本上就是這樣。 聽起來很簡單,但是,自然,一切都不會一帆風順。 因此,我將描述我在工作中遇到的一些錯誤:
“ssh-keygen”不被識別為內部或外部命令。
出現這種情況也是因為 ssh-keygen.exe 的路徑未加入環境變數。
有兩個選項:將 C:Program FilesGitusrbin 新增至環境變數(將在重新啟動電腦後套用),或從此目錄啟動控制台。
AppCenter 連接到了錯誤的 BitBucket 帳戶?
若要解決此問題,您需要將 BitBucket 帳戶與 AppCenter 取消關聯。 我們登入了錯誤的 BitBucket 帳戶並轉到用戶個人資料。
接下來,前往設定 > 存取管理 > OAuth
按一下撤銷以取消關聯您的帳戶。
之後,您需要使用所需的 BitBucket 帳戶登入。
* 作為最後的手段,也請清除瀏覽器快取。
現在讓我們轉到應用程式中心。 前往“建置”部分,按一下“斷開 BitBucket 帳戶”
當舊帳戶取消連結後,我們再次連結AppCenter。 現在轉到所需的帳戶。
“eval”不被識別為內部或外部命令
我們用它來代替命令
- eval $(ssh-agent -s)
團隊:
- ssh-agent
在某些情況下,您必須指定 C:Program FilesGitusrbinssh-agent.exe 的完整路徑,或將此路徑新增至執行執行程式的電腦上的系統變數中
AppCenter Build 正在嘗試從過時的 bitBucket 儲存庫啟動專案的構建
就我而言,出現問題是因為我正在使用多個帳戶。 我決定清除快取。
來源: www.habr.com