From 9ff445c4fcf5eeaf9c0147a07398490565ef57d1 Mon Sep 17 00:00:00 2001 From: Sameer Naik Date: Wed, 12 Oct 2016 23:01:46 +0530 Subject: [PATCH 1/2] use CircleCI to build and deploy releases on multiple targets --- bitnami/drupal/circle.yml | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 bitnami/drupal/circle.yml diff --git a/bitnami/drupal/circle.yml b/bitnami/drupal/circle.yml new file mode 100644 index 000000000000..b400a181022d --- /dev/null +++ b/bitnami/drupal/circle.yml @@ -0,0 +1,57 @@ +machine: + services: + - docker + environment: + IMAGE_NAME: drupal + DOCKER_PROJECT: bitnami + GCLOUD_PROJECT: bitnami-containers + +dependencies: + override: + - docker info + - gcloud version + - docker pull $DOCKER_PROJECT/$IMAGE_NAME:development || true + +test: + override: + - docker build --rm=false -t $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_BUILD_NUM . + +deployment: + development: + branch: master + commands: + - > + if [ -n $DOCKER_PASS ]; then + docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS + docker build --rm=false -t $DOCKER_PROJECT/$IMAGE_NAME:development . + docker push $DOCKER_PROJECT/$IMAGE_NAME:development + fi + - > + if [ -n $GCLOUD_SERVICE_KEY ]; then + echo $GCLOUD_SERVICE_KEY | base64 --decode > ${HOME}/gcloud-service-key.json + gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json + gcloud config set project $GCLOUD_PROJECT + docker tag $DOCKER_PROJECT/$IMAGE_NAME:development gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:development + gcloud docker -- push gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:development + fi + release: + tag: /^[0-9]+(\.[0-9]+)*-r[0-9]*/ + commands: + - > + if [ -n $DOCKER_PASS ]; then + docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS + docker build --rm=false -t $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_TAG . + docker tag $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_TAG $DOCKER_PROJECT/$IMAGE_NAME:latest + docker push $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_TAG + docker push $DOCKER_PROJECT/$IMAGE_NAME:latest + fi + - > + if [ -n $GCLOUD_SERVICE_KEY ]; then + echo $GCLOUD_SERVICE_KEY | base64 --decode > ${HOME}/gcloud-service-key.json + gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json + gcloud config set project $GCLOUD_PROJECT + docker tag $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_TAG gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:$CIRCLE_TAG + docker tag $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_TAG gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:latest + gcloud docker -- push gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:$CIRCLE_TAG + gcloud docker -- push gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:latest + fi From 3e2f77a1c35d9d812297076136fed0f33237a7df Mon Sep 17 00:00:00 2001 From: Sameer Naik Date: Thu, 13 Oct 2016 11:27:32 +0530 Subject: [PATCH 2/2] replace development build with a cache build --- bitnami/drupal/circle.yml | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/bitnami/drupal/circle.yml b/bitnami/drupal/circle.yml index b400a181022d..90475aa11b11 100644 --- a/bitnami/drupal/circle.yml +++ b/bitnami/drupal/circle.yml @@ -10,32 +10,24 @@ dependencies: override: - docker info - gcloud version - - docker pull $DOCKER_PROJECT/$IMAGE_NAME:development || true + - docker pull $DOCKER_PROJECT/$IMAGE_NAME:cache-reload || true test: override: - docker build --rm=false -t $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_BUILD_NUM . deployment: - development: + cache: branch: master commands: - > if [ -n $DOCKER_PASS ]; then docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS - docker build --rm=false -t $DOCKER_PROJECT/$IMAGE_NAME:development . - docker push $DOCKER_PROJECT/$IMAGE_NAME:development - fi - - > - if [ -n $GCLOUD_SERVICE_KEY ]; then - echo $GCLOUD_SERVICE_KEY | base64 --decode > ${HOME}/gcloud-service-key.json - gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json - gcloud config set project $GCLOUD_PROJECT - docker tag $DOCKER_PROJECT/$IMAGE_NAME:development gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:development - gcloud docker -- push gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:development + docker build --rm=false -t $DOCKER_PROJECT/$IMAGE_NAME:cache-reload . + docker push $DOCKER_PROJECT/$IMAGE_NAME:cache-reload fi release: - tag: /^[0-9]+(\.[0-9]+)*-r[0-9]*/ + tag: /^[0-9]+(\.[0-9]+)*([^\n])*/ commands: - > if [ -n $DOCKER_PASS ]; then @@ -49,7 +41,6 @@ deployment: if [ -n $GCLOUD_SERVICE_KEY ]; then echo $GCLOUD_SERVICE_KEY | base64 --decode > ${HOME}/gcloud-service-key.json gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json - gcloud config set project $GCLOUD_PROJECT docker tag $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_TAG gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:$CIRCLE_TAG docker tag $DOCKER_PROJECT/$IMAGE_NAME:$CIRCLE_TAG gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:latest gcloud docker -- push gcr.io/$GCLOUD_PROJECT/$IMAGE_NAME:$CIRCLE_TAG