目前,我有内部部署 GitLab Server
可以访问互联网,但无法从外部访问,我希望他能够将更改推送到Azure Webapp
。
我发现this显示了一种从GitLab自动化Azure 拉的方法,但由于无法从外部访问,因此无法进行设置。 GitLab服务器有什么方法可以推送(发布)主控提交到Azure webapp
?
我非常感谢您提供的任何帮助。
编辑:存储库镜像似乎是一个很好的解决方案,但looks like这是一个Gitlab EE
功能。
答案 0 :(得分:0)
如果Azure计算机可以连接到GitLab,您可以设置GitLab CI运行器,它将从GitLab获取更改并运行您的自定义脚本。通过这种方式,GitLab无需与Azure通信,Azure将自动从GitLab中提取更改。任何最新的GitLab版本都捆绑了您可以在项目中启用的GitLab-CI服务。有关CI-runner configuration here和GitLab-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)
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
这不太好,请务必改进这一点。