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?
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
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.