使用 Travis CI 将代码从同一分支部署到多个 Azure Web 应用程序
Posted
技术标签:
【中文标题】使用 Travis CI 将代码从同一分支部署到多个 Azure Web 应用程序【英文标题】:Deploy code from same branch to multiple azure web apps using Travis CI 【发布时间】:2021-12-28 06:49:09 【问题描述】:我有一个带有 C# .NET Core 后端和 React 前端的存储库。对于部署,我希望将两者都部署到 Azure Web Apps。到目前为止,我已经设置了两个 Web 应用程序:一个用于前端,一个用于后端。但是,我希望两者都只有一个网络应用程序。
-
如何将两者部署在同一个 Azure Web 应用上?
如果不可能,如何将 Travis CI 环境变量(如
AZURE_WA_USERNAME
)加密为分支的不同值,同时将每个应用程序部署到单独的 Web 应用程序?
我当前的.travis.yml
看起来像这样:
jobs:
include:
- language: csharp
solution: abc
mono: none
dotnet: 5.0.402
before_script:
- cd Backend
script:
- dotnet restore
- dotnet test
deploy:
provider: azure_web_apps
verbose: true
on: main
- language: node_js
node_js:
12
before_install:
- cd Frontend
install:
- npm install
script:
- npm run lint
- npm test
- npm run build
deploy:
provider: azure_web_apps
verbose: true
on: main
【问题讨论】:
【参考方案1】:如何将两者部署在同一个 Azure Web 应用上?
不可能使用同一个应用服务计划在同一个应用服务上部署两个 Web 应用。
如果不可能,如何将 Travis CI 环境变量(如
AZURE_WA_USERNAME
)加密为分支的不同值,同时将每个应用程序部署到单独的 Web 应用程序?
要使用隐藏环境变量或加密变量,请在存储库设置中定义变量,确保您已登录,导航到存储库,从 cog 菜单中选择“设置”,然后单击“添加新变量” “环境变量”部分。
作为 Web 界面的替代方案,您还可以使用 CLI 的 env
命令。
默认情况下,Travis CI 只会从您的 master 分支进行部署。
您可以使用 "on" 选项明确指定要部署的分支:
例如:
deploy:
provider: azure_web_apps
on: production
【讨论】:
有没有办法让环境变量不重名?我只是问,因为对于不同的工作,在同一分支上需要两个独特的变量设置,如AZURE_WA_USERNAME
。以上是关于使用 Travis CI 将代码从同一分支部署到多个 Azure Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用 Travis-CI 将多个发行版部署到 PyPI 时防止冲突
在travis-ci中手动触发安全列表之外(或阻止列表内)的分支的构建
sh 将分支自动合并为travis-ci或任何其他ci的master