#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
tomaster
, если app.yaml не игнорируется Git! Не похоже, что это правильно.2. Нет, вы получите конфликт только один раз — при 1-м слиянии после введения этой схемы. После завершения этого первого слияния у вас может возникнуть другой конфликт, только если вы снова измените эти конкретные строки кода . Попробуйте, если вы не уверены — я использую именно эту схему для своих промежуточных и производственных приложений, она работает просто отлично.