Как установить другой NODE_ENV для моего master и разработать ветки Git в моем файле app.yaml Google App Engine?

#node.js #git #google-app-engine

#node.js #git #google-app-engine

Вопрос:

Вот как app.yaml выглядит мой файл для Google App Engine current:

 # [START app_yaml]
runtime: nodejs
vm: true
env_variables:
    PORT: 8080
    NODE_ENV: development
# [END app_yaml]
  

У меня есть две ветки Git:

  • мастер
  • разработка

Я развертываюсь в промежуточный проект из develop ветки и в производственный проект из master ветки. Я хочу установить NODE_ENV переменную production только при развертывании из master ветки. Возможно ли это? Если нет, то как вы все это делаете?

Примечание: я новичок в Google App Engine. Я не уверен, что именно так вы вообще развертываете на промежуточных и производственных серверах. Если у вас есть лучшее решение, пожалуйста, поделитесь.

Ответ №1:

У вас может быть app.yaml разное содержимое в 2 ветках. Я бы также установил имя приложения в файле yaml для соответствующего приложения для разработки / производства вместо указания его с помощью аргументов во время развертывания, чтобы предотвратить развертывание acidental в неправильном приложении.

Ветка develop app.yaml :

 application: my_app_dev
runtime: nodejs
vm: true
env_variables:
    PORT: 8080
    NODE_ENV: development
  

Ветка master app.yaml :

 application: my_app
runtime: nodejs
vm: true
env_variables:
    PORT: 8080
    NODE_ENV: production
  

Комментарии:

1. Тогда я получал бы конфликт / перезапись слияния Git всякий раз, когда я объединяю код с develop to master , если app.yaml не игнорируется Git! Не похоже, что это правильно.

2. Нет, вы получите конфликт только один раз — при 1-м слиянии после введения этой схемы. После завершения этого первого слияния у вас может возникнуть другой конфликт, только если вы снова измените эти конкретные строки кода . Попробуйте, если вы не уверены — я использую именно эту схему для своих промежуточных и производственных приложений, она работает просто отлично.