Darbio's solution works great, but does not take into account that you can end up pushing your AWS credentials in your repository.
This is bad , especially if the docker is trying to pull a personal image from one of your ECR repositories. This would mean that you probably had to store your AWS credentials in a .travis.yml file, and this is far from ideal.
Fortunately, Travis gives you the ability to encrypt environment variables, notification settings, and deploy api keys.
gem install travis
Make a travis login , first of all, he will ask you to provide your github credentials. After entering the root folder of the project (where your .travis.yml file is .travis.yml ) and encrypt the access key and secret access key.
travis encrypt AWS_ACCESS_KEY_ID="HERE_PUT_YOUR_ACCESS_KEY_ID" --add travis encrypt AWS_SECRET_ACCESS_KEY="HERE_PUT_YOUR_SECRET_ACCESS_KEY" --add
Thanks to the --add option, you will get two new (encrypted) environment variables in your configuration file. Now just open the .travis.yml file and you will see something like this:
env: global: - secure: encrypted_stuff - secure: encrypted_stuff
Now you can get travis to run a shell script that creates the ~/.aws/credentials file for you.
ecr_credentials.sh
#!/usr/bin/env bash mkdir -p ~/.aws cat > ~/.aws/credentials << EOL [default] aws_access_key_id = ${AWS_ACCESS_KEY_ID} aws_secret_access_key = ${AWS_SECRET_ACCESS_KEY} EOL
Then you just need to run ecr_credentials.sh script from your .travis.yml file:
before_install: - ./ecr_credentials.sh
Done! : - D
Source: Travis CI Activation Keys
Francesco casula
source share