你好,你好!
我想谈谈我通过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:password@bitbucket.org/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 git@bitbucket.org mirror: stage: mirror script: - git push --mirror https://****:****@bitbucket.org/*****/*****.git
3.配置AppCenter
我们在AppCenter上创建一个新的应用程序。

指定语言/平台

接下来,转到新创建的应用程序的“构建”部分。 我们选择BitBucket,然后选择在步骤1中创建的存储库。
好的,现在您需要配置构建。 为此,找到齿轮图标

原则上,那里的一切都是直观的。 我们选择项目和配置。 如有必要,请在构建后启用测试启动。 它们将自动启动。
原则上就是这样。 听起来很容易,但是自然而然地,一切都不会顺利进行。 因此,我将描述工作时遇到的一些错误:
无法将“ ssh-keygen”识别为内部或外部命令。出现该问题是因为ssh-keygen.exe的路径未添加到环境变量中。
有两个选项:将C:\ Program Files \ Git \ usr \ bin添加到环境变量(将在重新启动计算机后应用),或从此目录启动控制台。
AppCenter连接到错误的BitBucket帐户?要解决此问题,您需要从AppCenter取消释放BitBucket帐户。 我们输入了错误的BitBucket帐户,然后转到用户个人资料。

接下来,转到设置>访问管理> OAuth

单击撤消以解除帐户绑定。

之后,您需要使用必要的BitBucket帐户登录
* 在极端情况下,还要清除浏览器缓存
现在转到AppCenter。 转到“构建”部分,单击“断开BitBucket帐户的连接”

解除旧帐户的绑定后,我们将再次绑定AppCenter。 现在到所需的帐户。
'eval'不被识别为内部或外部命令使用代替命令
- eval $(ssh-agent -s)
命令:
- ssh-agent
在某些情况下,您将必须指定C:\ Program Files \ Git \ usr \ bin \ ssh-agent.exe的完整路径,或者将此路径添加到运行运行程序的计算机上的系统变量中
AppCenter Build尝试从无关的bitBucket存储库中启动项目的构建就我而言,出现问题是因为我使用多个帐户。 我决定清除缓存。