指定要在 Elastic Beanstalk 环境中部署的 git 分支代码

Posted

技术标签:

【中文标题】指定要在 Elastic Beanstalk 环境中部署的 git 分支代码【英文标题】:Specify the git branch code to be deployed in Elastic Beanstalk environment 【发布时间】:2016-11-09 15:26:52 【问题描述】:

有没有办法指定将哪个 git 分支代码部署到 Elastic Beanstalk 环境?

假设,我有两个名为 teststage 的 git 分支,并且我有一个名为 test-env 的 Elastic Beanstalk 环境。

现在,我将config.yml 中的分支默认设置如下:

branch-defaults: 
  test:
    environment: test-env
    group_suffix: null
global:
  application_name: test
  default_ec2_keyname: abcde
  default_platform: Ruby 2.2 (Puma)
  default_region: us-west-2
  profile: eb-cli
  sc: git

现在,我需要的是,如果我使用 eb deploy test-envstage 分支部署它应该自动从 test 分支部署代码,否则它应该会抛出错误。

有什么办法吗。如果没有,请建议我采取其他方法。

谢谢..

【问题讨论】:

【参考方案1】:

这不是 EB CLI 支持的;它将始终从当前分支运行部署。但是,这当然是您可以编写脚本的东西(我假设您在bash 下运行,使用for 命令提取当前分支名称来移植到Windows 命令shell 不会太难): 部署测试.sh:

#!bin/bash
# Grab the current branch name
current=`git rev-parse --abbrev-ref HEAD`
# Just in case we have any in-flight work, stash it
git stash
# Switch to 'test' branch
git checkout test
# Deploy to  test-env
eb deploy test-env
# Switch back to whatever branchwe were on
git checkout $current
# Restore in-flight work
git stash pop

【讨论】:

以上是关于指定要在 Elastic Beanstalk 环境中部署的 git 分支代码的主要内容,如果未能解决你的问题,请参考以下文章

rails部署成功,但Elastic Beanstalk返回522

如何在 Elastic Beanstalk 上安装 matplotlib

在 Docker 中访问 Elastic Beanstalk 环境属性

如何通过 RDS 复制到 Elastic Beanstalk 克隆

我在 Elastic Beanstalk for AL2 中的环境变量在哪里?

即使实例运行状况良好,Elastic Beanstalk 也会报告 5xx 错误