La soluzione di Darbio funziona bene ma non è necessario prendere in considerazione il fatto che potresti finire con il push delle credenziali AWS nel tuo repository.
Che è una cosa negativa in particolare se la finestra mobile sta tentando di estrarre un'immagine privata da uno dei repository ECR. Significa che probabilmente hai dovuto memorizzare le tue credenziali di produzione AWS nel file .travis.yml
e questo è tutt'altro che ideale.
Fortunatamente, Travis offre la possibilità di crittografare le variabili di ambiente, le impostazioni di notifica e distribuire le chiavi API.
gem install travis
fare un travis login
prima di tutto, vi chiederà le credenziali Github. Una volta effettuato l'accesso, accedere alla cartella principale del progetto (dove si trova il file .travis.yml
) e crittografare l'ID della chiave di accesso e la chiave di accesso segreta.
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
grazie all'opzione --add
vi ritroverete con due nuovi (criptato) variabili d'ambiente nel file di configurazione.Ora basta aprire il file .travis.yml
e si dovrebbe vedere qualcosa di simile:
env:
global:
- secure: encrypted_stuff
- secure: encrypted_stuff
Ora è possibile effettuare Travis eseguire uno script di shell che crea il file ~/.aws/credentials
per voi.
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
Allora non vi resta che eseguire lo script ecr_credentials.sh
dal file .travis.yml
:
before_install:
- ./ecr_credentials.sh
Fatto! :-D
Fonte:Encription keys on Travis CI
fonte
2017-06-30 15:38:30
Trovato questa domanda durante il tentativo di installare l'awscli su Travis - in ultima analisi, quello che ho finito con era di usare 'PIP installare --user awscli' al posto del sopra before_deploy stanzas. – ankon