目前,我有一个本地 GitLab 服务器
,可以访问互联网,但无法从外部访问,我想要他能够将更改推送到 Azure Webapp
。
我找到了this这展示了一种从 GitLab 自动化 Azure pull 的方法,但由于无法从外部访问它,因此无法进行设置。 GitLab 服务器有什么方法可以将 master 的提交推送(发布)到 Azure webapp
中吗?
我非常感谢您提供的任何帮助。
编辑:存储库镜像似乎是一个很好的解决方案,但是 looks like这是一个 Gitlab EE
功能。
最佳答案
实现此目的的一种方法是通过 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="<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b6c4c3d8d8d3c4f6dad9d5d7da98d5d9db" rel="noreferrer noopener nofollow">[email protected]</a>" 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
这不太漂亮,请务必改进。
关于git - 从 GitLab 推送到 Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39328857/