Cómo implementar en Heroku directamente desde mi repository de Gitlab

En mi equipo, utilizamos un repository remoto de Gitlab, por lo que estamos buscando una solución para implementar automáticamente nuestras aplicaciones en Heroku directamente. Encontramos Codeship para aplicaciones de implementación automática a Heroku desde Github.

¿Algun consejo? ¿Trucos?

Si no estás preparado para usar Ruby / dpl, puedes implementarlo en Heroku de la siguiente manera:

Busque su key de Heroku API (Configuración de count -> Clave de API en la console web Heroku) y haga que esté disponible como una variable secreta Gitlab, por ejemplo, HEROKU_API_KEY (Tenga en count que los valores no son los mismos que heroku auth: token devuelve …)

A continuación, agregue dos líneas de script en su file de configuration .gitlab-ci.yml en el trabajo relevante:

git remote add heroku https://heroku:$HEROKU_API_KEY@git.heroku.com/<name of your heroku app>.git git push -f heroku master 

Puede ver una explicación detallada en http://blog.thecodewhisperer.com/permalink/deploying-jekyll-to-heroku-using-gitlab-ci

Aquí está la solución que encontré, reformulando en caso de que el enlace se rompa:

Configurar proyecto

Este es el aspecto que tiene el file .gitlab-ci.yml para este proyecto:

 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 

Este proyecto tiene tres trabajos:

testing: se usa para probar la aplicación Django,

puesta en escena: se utiliza para implementar automáticamente el entorno de testing cada vez que se realiza una transferencia a la twig principal.

producción: utilizada para desplegar automáticamente environmnet de producción para cada label creada

Tienda API keys

Deberá crear dos variables en Proyecto> 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.