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 存储库启动项目的构建

就我而言,出现问题是因为我正在使用多个帐户。 我决定清除缓存。

来源: habr.com

添加评论