从GitLab推送到Azure

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

我发现这显示了一种自动从GitLab中取Azure的方法,但由于无法从外部访问,因此无法进行设置。 GitLab服务器有什么方法提交操作(发布)提交到Azure webapp

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

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


如果Azure机器可以连接到GitLab,则可以设置GitLab CI runner,以便从GitLab获取更改并运行您的自定义脚本。 通过这种方式,GitLab不必与Azure交谈,Azure会自动从GitLab中提取更改。 任何最近的GitLab版本都会捆绑您可以在您的项目中启用的GitLab-CI服务。 更多关于CI-runner配置和GitLab-CI的信息。


通过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

这不太好,请一定改善这一点。

链接地址: http://www.djcxy.com/p/85111.html

上一篇: Push from GitLab to Azure

下一篇: Jenkins and Gitlab: Webhook isn't running