0

我的主要想法是有两个独立的环境 - 一个 forproduction和一个 for staging

为此,我在 Heroku 上创建了两个存储库(我不确定是否可以使用一个存储库来实现)


version: 2.1
jobs:
  heroku/deploy-via-git:
    docker:
      - image: circleci/node:10.16.3
    steps:
      - checkout
      - run:
          name: build-dev-step
          command: echo $HEROKU_APP_NAME "This is Heroku env variable"
  setting_development_variables:
    docker:
      - image: circleci/node:10.16.3
    environment:
      HEROKU_APP_NAME: ****
    steps:
      - checkout
      - run:
          name: setting-variables-command
          command: echo "Heroku env variables are set"
  setting_production_variables:
    docker:
      - image: circleci/node:10.16.3
    environment:
      HEROKU_APP_NAME: ***2***
      NODE_ENV: production
    steps:
      - checkout
      - run:
          name: setting-variables-command
          command: echo "Heroku env variables are set"

orbs:
  heroku: circleci/heroku@0.0.10
workflows:
  production:
    jobs:
      - setting_production_variables:
          filters:
            branches:
              only:
                - main
      - heroku/deploy-via-git:
          requires:
            - setting_production_variables
          filters:
            branches:
              only:
                - main
  development:
    jobs:
      - setting_development_variables: 
          filters:
            branches:
              only:
                - staging
      - heroku/deploy-via-git:
          requires:
            - setting_development_variables
          filters:
            branches:
              only:
                - staging



在这里你可以看到我是如何让它为我工作的,但似乎我不能在那里设置任何环境,也HEROKU_APP_NAME不能NODE_ENV

对于我在项目设置中设置环境变量的生产,它对我来说很好。但是当我尝试在配置文件中设置它时,它不想工作。

我在这里做错了什么,它不想为我设置环境变量?或者也许有更好的方法来分离 Heroku 和 CircleCI 之间的模式?

编辑:

据我了解NODE_ENV,我应该通过 CircleCI 命令将变量设置在 Heroku 的一侧,对吗?不是我在这里设置的方式

4

1 回答 1

0

如果有人遇到同样的情况,我就是这样解决的

version: 2.1
orbs:
  heroku: circleci/heroku@0.0.10
workflows:
  production:
    jobs:
      - heroku/deploy-via-git:
          filters:
            branches:
              only:
                - main
          app-name: {{here goes your app name for production}}
  development:
    jobs:
      - heroku/deploy-via-git:
          filters:
            branches:
              only:
                - staging
          app-name: {{here goes your app name for development}}
于 2021-07-04T21:21:15.177 回答