Comment se déployer à Heroku directement depuis mon dépôt Gitlab
dans mon équipe, nous utilisons Gitlab un référentiel distant, donc nous trouvons une solution pour le déploiement automatique des applications we à Heroku directement. Nous avons trouvé un vaisseau pour le déploiement automatique des applications à Heroku depuis Github.
des conseils? Astuces?
3 réponses
si vous n'êtes pas prêt à utiliser Ruby / dpl vous pouvez vous déployer à Heroku comme suit:
rechercher votre clé API Heroku (paramètres du compte -> clé API sur la console Web Heroku) et la rendre disponible en tant que variable secrète Gitlab par exemple HEROKU_API_KEY (veuillez noter que les valeurs ne sont pas les mêmes que ce que renvoie heroku auth:token...)
Puis ajouter deux lignes de script dans votre .gitlab-ci.yml fichier de configuration sur le poste en question:
git remote add heroku https://heroku:$HEROKU_API_KEY@git.heroku.com/<name of your heroku app>.git
git push -f heroku master
Vous pouvez voir l'explication détaillée à http://blog.thecodewhisperer.com/permalink/deploying-jekyll-to-heroku-using-gitlab-ci
Ici est la solution que j'ai trouvé , en réaffirmant dans le cas où le lien est rompu:
Configurer le projet
c'est Ce que l' .gitlab-ci.fichier yml ressemble à ce projet:
test:
script:
# this configures Django application to use attached postgres database that is run on `postgres` host
- export DATABASE_URL=postgres://postgres:@postgres:5432/python-test-app
- apt-get update -qy
- apt-get install -y python-dev python-pip
- pip install -r requirements.txt
- python manage.py test
staging:
type: deploy
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=gitlab-ci-python-test-staging --api-key=$HEROKU_STAGING_API_KEY
only:
- master
production:
type: deploy
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=gitlab-ci-python-test-prod --api-key=$HEROKU_PRODUCTION_API_KEY
only:
- tags
Ce projet a trois emplois:
test-utilisé pour tester L'application Django,
staging-utilisé pour déployer automatiquement l'environnement de staging à chaque poussée vers master branch
production - utilisé pour déployer automatiquement la production environmnet pour chaque balise créée
stocker les clés API
vous aurez besoin de créer deux variables dans Project > Variables:
HEROKU_STAGING_API_KEY - Heroku API key used to deploy staging app,
HEROKU_PRODUCTION_API_KEY - Heroku API key used to deploy production app.
vous devriez exécuter cette commande sur n'importe quel dépôt existant en utilisant heroku cli:
heroku git:remote -a <name of your heroku app>
alors vous pouvez exécuter ceci pour le déploiement de votre projet:
git push heroku master