web-dev-qa-db-fra.com

Comment déployer sur Heroku directement à partir de mon référentiel Gitlab

Dans mon équipe, nous utilisons Gitlab en tant que référentiel distant. Nous recherchons donc une solution pour déployer automatiquement nos applications sur Heroku. Nous avons trouvé Codeship pour le déploiement automatique d'applications sur Heroku à partir de Github.

Des conseils? Des trucs?

28
Toanalien

Si vous n'êtes pas prêt à utiliser Ruby/dpl, vous pouvez le déployer sur Heroku comme suit:

Recherchez votre clé API Heroku (Paramètres du compte -> Clé API sur la console Web Heroku) et rendez-la disponible sous forme de variable secrète Gitlab, par exemple. HEROKU_API_KEY (Veuillez noter que les valeurs ne sont pas les mêmes que ce que heroku auth: token renvoie ...)

Ajoutez ensuite deux lignes de script dans votre fichier de configuration .gitlab-ci.yml du travail correspondant:

git remote add heroku https://heroku:[email protected]/<name of your heroku app>.git

git Push -f heroku master

Vous pouvez voir une explication détaillée sur http://blog.thecodewhisperer.com/permalink/deploying-jekyll-to-heroku-using-gitlab-ci

33
Zsolt

Here est la solution que j'ai trouvée, rappelant que le lien est brisé:

Configurer le projet

Voici à quoi ressemble le fichier .gitlab-ci.yml pour 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 Django,

staging - utilisé pour déployer automatiquement l'environnement de transfert chaque branche Push to master

production - utilisé pour déployer automatiquement un environnement de production pour chaque balise créée

Stocker les clés de l'API

Vous devez créer deux variables dans Projet> 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.
25
dnit13