AppCenter 和 GitLab 集成

特里姆,你好!

我想談談我透過 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 金鑰。 關於這一點已經寫了很多文章。 例如,您可以查看 這裡.
產生的密鑰看起來像這樣:
AppCenter 和 GitLab 集成

進一步 秘密鑰匙 需要作為變數加入 GitLab。 為此,請轉到“設定”>“CI/CD”>“環境變數”。 新增保存密鑰的文件的所有內容。 我們將變數命名為 SSH_PRIVATE_KEY。
* 與公鑰檔案不同,該檔案沒有副檔名
AppCenter 和 GitLab 集成

太好了,接下來您需要將公鑰新增到 BitBucket 中。 為此,請打開儲存庫並轉到“設定”>“存取密鑰”。

AppCenter 和 GitLab 集成

這裡我們點擊「新增金鑰」並插入帶有公鑰的檔案的內容(副檔名為 .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 上建立一個新應用程式。

AppCenter 和 GitLab 集成

指定語言/平台

AppCenter 和 GitLab 集成

接下來,轉到新建立的應用程式的「建置」部分。 我們在此處選擇 BitBucket 和步驟 1 中建立的儲存庫。

太好了,現在我們需要配置建置。 為此,請找到齒輪圖標

AppCenter 和 GitLab 集成

原則上,一切都是直觀的。 選擇項目和配置。 如有必要,請在建置後啟用測試啟動。 它們會自動啟動。

基本上就是這樣。 聽起來很簡單,但是,自然,一切都不會一帆風順。 因此,我將描述我在工作中遇到的一些錯誤:

“ssh-keygen”不被識別為內部或外部命令。

出現這種情況也是因為 ssh-keygen.exe 的路徑未加入環境變數。
有兩個選項:將 C:Program FilesGitusrbin 新增至環境變數(將在重新啟動電腦後套用),或從此目錄啟動控制台。

AppCenter 連接到了錯誤的 BitBucket 帳戶?

若要解決此問題,您需要將 BitBucket 帳戶與 AppCenter 取消關聯。 我們登入了錯誤的 BitBucket 帳戶並轉到用戶個人資料。

AppCenter 和 GitLab 集成

接下來,前往設定 > 存取管理 > OAuth

AppCenter 和 GitLab 集成

按一下撤銷以取消關聯您的帳戶。

AppCenter 和 GitLab 集成

之後,您需要使用所需的 BitBucket 帳戶登入。
* 作為最後的手段,也請清除瀏覽器快取。

現在讓我們轉到應用程式中心。 前往“建置”部分,按一下“斷開 BitBucket 帳戶”

AppCenter 和 GitLab 集成

當舊帳戶取消連結後,我們再次連結AppCenter。 現在轉到所需的帳戶。

“eval”不被識別為內部或外部命令

我們用它來代替命令

  - eval $(ssh-agent -s)

團隊:

  - ssh-agent

在某些情況下,您必須指定 C:Program FilesGitusrbinssh-agent.exe 的完整路徑,或將此路徑新增至執行執行程式的電腦上的系統變數中

AppCenter Build 正在嘗試從過時的 bitBucket 儲存庫啟動專案的構建

就我而言,出現問題是因為我正在使用多個帳戶。 我決定清除快取。

來源: www.habr.com

添加評論