git - 从 GitLab 推送到 Azure

标签 git azure continuous-integration gitlab

目前,我有一个本地 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/

相关文章:

git - 从 Mercurial 向 Git 贡献补丁?

Git递归添加单个子目录

perl - 使用git高效地重写(rebase -i)许多历史记录

Azure AD-B2C 和多个提供商

azure - Azure 数据仓库中 sp_depends 的替代方案

azure - 其余操作 Azure Datalake gen2

jenkins - [Jenkins]为什么用户定义的轴不适用于从站

git - 在不禁用权威签名证书的情况下添加自签名 SSL 证书

amazon-web-services - Elastic BeanStalk 应用程序部署后 Hook 未执行我的命令

javascript - Gradle Maven 依赖项