从GitLab推送到Azure

时间:2016-09-05 10:41:25

标签: git azure continuous-integration gitlab

目前,我有内部部署 GitLab Server可以访问互联网,但无法从外部访问,我希望他能够将更改推送到Azure Webapp

我发现this显示了一种从GitLab自动化Azure 的方法,但由于无法从外部访问,因此无法进行设置。 GitLab服务器有什么方法可以推送(发布)主控提交到Azure webapp

我非常感谢您提供的任何帮助。

编辑:存储库镜像似乎是一个很好的解决方案,但looks like这是一个Gitlab EE功能。

2 个答案:

答案 0 :(得分:0)

如果Azure计算机可以连接到GitLab,您可以设置GitLab CI运行器,它将从GitLab获取更改并运行您的自定义脚本。通过这种方式,GitLab无需与Azure通信,Azure将自动从GitLab中提取更改。任何最新的GitLab版本都捆绑了您可以在项目中启用的GitLab-CI服务。有关CI-runner configuration hereGitLab-CI的更多信息。

答案 1 :(得分:0)

通过CI流程中的一个阶段执行此操作的一种方法是提取每个站点凭据,然后您可以使用git远程功能进行推送。我能够通过Azure CLI 2.0

执行此操作

从此新应用中提取用户名和密码站点凭据

az appservice web deployment list-site-credentials --name $CI_PROJECT_NAME --resource-group $CI_PROJECT_NAME | jq -r '.publishingUserName' >> username
az appservice web deployment list-site-credentials --name $CI_PROJECT_NAME --resource-group $CI_PROJECT_NAME | jq -r '.publishingPassword' >> password

存储用户名并传递为变量

user=$(cat username)
pass=$(cat password)

分段位 - 丑陋的AF(应该是基于工件的)

mkdir staging
mv * staging/
cd staging
git init
git add -A
git -c user.name=’Runner' -c user.email='runner@local.com' commit -m "Sample git msg"
git remote add azure "https://${user}:${pass}@$CI_PROJECT_NAME.scm.azurewebsites.net/${CI_PROJECT_NAME}-$$CI_PROJECT_NAME.git"
git remote -v
git push -f azure master
cd ..
rm -rf staging

这不太好,请务必改进这一点。