使用 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 只会从您的 ma​​ster 分支进行部署。

您可以使用 "on" 选项明确指定要部署的分支:

例如:

deploy:
  provider: azure_web_apps
  on: production

【讨论】:

有没有办法让环境变量不重名?我只是问,因为对于不同的工作,在同一分支上需要两个独特的变量设置,如 AZURE_WA_USERNAME

以上是关于使用 Travis CI 将代码从同一分支部署到多个 Azure Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Travis CI自动部署Hexo博客

使用 Travis-CI 将多个发行版部署到 PyPI 时防止冲突

在travis-ci中手动触发安全列表之外(或阻止列表内)的分支的构建

sh 将分支自动合并为travis-ci或任何其他ci的master

CI/CD 平台迁移实践:从 Travis-CI 转移到 Github Action

成功后部署 pypi travis ci