Created
June 5, 2018 00:56
-
-
Save automata/a790205175a37a036feeb9e479322858 to your computer and use it in GitHub Desktop.
Heroku Docker Container Release from GitLab CI (without Heroku CLI)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
image: docker:latest | |
# Remember to set required vars as secret vars on GitLab CI settings | |
variables: | |
DOCKER_DRIVER: overlay | |
CONTAINER_TEST_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}_${CI_COMMIT_SHA}_test | |
CONTAINER_DEPLOY_IMAGE: ${HEROKU_REGISTRY}/${CI_PROJECT_NAME}/web | |
HEROKU_API_KEY: ${HEROKU_AUTH_TOKEN} | |
services: | |
- docker:dind | |
before_script: | |
- docker info | |
- docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY | |
- docker login -u $HEROKU_USER -p $HEROKU_AUTH_TOKEN $HEROKU_REGISTRY | |
- apk add --update curl && rm -rf /var/cache/apk/* | |
production: | |
stage: deploy | |
script: | |
- docker build --build-arg NODE=development --pull -t $CONTAINER_TEST_IMAGE . | |
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_DEPLOY_IMAGE | |
- docker push $CONTAINER_DEPLOY_IMAGE | |
- ./release.sh $CI_PROJECT_NAME | |
only: | |
- tags |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Adapted from https://toedter.com/2018/06/02/heroku-docker-deployment-update/ | |
appName=$1 | |
imageId=$(docker inspect registry.heroku.com/$appName/web --format={{.Id}}) | |
payload='{"updates":[{"type":"web","docker_image":"'"$imageId"'"}]}' | |
curl -n -X PATCH https://api.heroku.com/apps/$appName/formation \ | |
-d "$payload" \ | |
-H "Content-Type: application/json" \ | |
-H "Accept: application/vnd.heroku+json; version=3.docker-releases" \ | |
-H "Authorization: Bearer $HEROKU_AUTH_TOKEN" |
image: docker:stable
services:
- docker:dind
- python:alpine
variables:
DOCKER_DRIVER: overlay
HEROKU_APP_NAME: adn-decrypt
HEROKU_REGISTRY_IMAGE: registry.heroku.com/${HEROKU_APP_NAME}/web
stages:
- build
docker-build:
stage: build
script:
- apk add --no-cache curl
- docker build
--tag $HEROKU_REGISTRY_IMAGE
--file ./Dockerfile
"."
- docker login -u _ -p $HEROKU_AUTH_TOKEN registry.heroku.com
- docker push $HEROKU_REGISTRY_IMAGE
- docker run --rm -e HEROKU_API_KEY=$HEROKU_AUTH_TOKEN wingrunr21/alpine-heroku-cli container:release web --app $HEROKU_APP_NAME
only:
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Actually the release doesn't wok.