You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I got to here after spending hours trying to deploy to an Elastic Beanstalk instance via CircleCi 2.0 so I thought I'd write up what worked for me to hopefully help others. Shout out to RobertoSchneiders who's [steps for getting it to work with CircleCi 1.0](https://gist.github.com/RobertoSchneiders/9e0e73e836a80d53a21e) were my starting point.
For the record, I'm not the most server-savvy of developers so there may be a better way of doing this.
#### Setup a user on AWS IAM to use for deployments
-[Add user here](https://console.aws.amazon.com/iam/home#/users$new?step=details)
- Set a username and select `Programmatic access` as the Access type
- Click 'Create group' on the user permissions page
- Set a group name and search for the `AWSElasticBeanstalkFullAccess` policy type and select it
- Create the group so it's assigned to your new user
- Review and create the user
#### Setup an Elastic Beanstalk application
- 'Create New Application'
- 'Create New Environment'
- 'Create web server'
- On the Environment Information page where it asks you to set the 'Environment name', set it to something with the Git branch name in e.g. `BRANCHNAME-my-application`
- I do this as I have a staging branch and the master branch so in our EB config, we'll be replacing `BRANCHNAME` with the $CIRCLE_BRANCH environment variable provided by CircleCi so when deploying the staging branch for example, it will know to deploy to the `staging-my-application` environment on Elastic Beanstalk
- Follow the rest of the setup as you require
#### Add deployment user environment variables to CircleCi
- Project Settings > Environment Variables
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
#### Add `.elasticbeanstalk/config.yml` config to application code
- Update the values in the below snippet to match what you setup.
Note: Ensure the `application_name` is exactly what you called your application in Elastic Beanstalk when you did the 'Create New Application' step.
Also Note: Do not set a `profile:` value here, the profile will be set based on the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables you setup.
#### Update your `.circleci/config.yml`
- The following is what I think is the bare minimum I needed to get only the `master` or `staging` branches on your Git repo to deploy.
- Update `$CIRCLE_BRANCH-my-application` to the environment name you set in Elastic Beanstalk.
- Commit and let CircleCi do it's thing. If all goes well you should see it updating on the Elastic Beanstalk dashboard as the 'Deploying' step is running in CircleCi.