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?

18
demandé sur Toanalien 2016-05-05 13:44:09

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

23
répondu Zsolt 2017-03-17 15:05:07

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.
15
répondu dnit13 2016-09-26 15:24:18

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
3
répondu Sajjad Shirazy 2018-03-19 11:02:05