You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Travis CI:如何在.travis.yml中按分支配置环境变量

可以!现在Travis CI支持通过.travis.yml配置分支专属环境变量啦

之前的答案确实已经过时了——现在你完全可以在配置文件里针对特定分支设置专属环境变量,不用再只依赖页面配置。下面给你两种常用的实现方式:

方式1:直接在env字段里加分支条件判断

这种方式适合分支数量不多、只需要简单设置变量的场景,逻辑直观:

env:
  # 全局变量:所有分支都会生效
  global:
    - COMMON_API_KEY="abc123"
  # 分支专属变量:通过if语句指定生效分支
  matrix:
    - if: branch = main
      env: DEPLOY_TARGET="production"
    - if: branch = develop
      env: DEPLOY_TARGET="staging"

你还可以用更灵活的条件,比如匹配多个分支:if: branch IN (main, release/*),或者排除分支:if: branch != feature/*。

方式2:通过jobs.include做分支专属配置

如果需要给特定分支搭配更多个性化设置(比如不同的构建脚本、依赖),这种方式扩展性更强:

jobs:
  include:
    - stage: deploy
      # 仅main分支执行这个任务
      if: branch = main
      env:
        - DEPLOY_ENV="prod"
        - PROD_DB_URL="mysql://user:pass@prod-db:3306"
      script: npm run deploy:prod

    - stage: deploy
      # 仅develop分支执行这个任务
      if: branch = develop
      env:
        - DEPLOY_ENV="dev"
        - DEV_DB_URL="mysql://user:pass@dev-db:3306"
      script: npm run deploy:dev

这种方式下,每个分支的任务可以完全独立,变量、脚本、甚至阶段都能自定义。

小提醒

  • 页面配置的环境变量优先级比.yml里的高,如果两者同名,页面的会覆盖配置文件的;
  • 全局变量会和分支专属变量合并,不会冲突(除非同名);
  • 条件判断还能结合标签、PR状态等,比如if: tag IS present可以给打标签的版本设置专属变量。

内容的提问来源于stack exchange,提问作者kharandziuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:12:20