File: //home/arjun/projects/buyercall_forms/buyercall/bitbucket-pipelines.yml
# enable Docker for your repository
options:
docker: true
pipelines:
branches:
master:
#- step:
# name: Check PEP8
# caches:
# - pip
# script:
#- sudo apt-get update && apt-get install -q -y python-setuptools python-dev
#- sudo easy_install pip
#- pip install pip --upgrade
#- pip install --upgrade setuptools
#- pip install flake8 pytest pytest-cov
#- find buyercall/ -name '*.py' | grep -v migrations | xargs flake8 --max-line-length=120 --ignore=E402
#- pytest --cov=buyercall
- step:
name: Building docker images and deploy
services:
- docker
caches:
- docker
image: tstrohmeier/awscli:latest
deployment: test
script:
- mv Dockerfile.prod Dockerfile
# setting variables
- sed -i "s*DB_URI*$DB_URI_PROD*g" config/settings.py
- sed -i "s*CACHEREDISURL*$CACHE_REDIS_PROD*g" config/settings.py
- sed -i "s*CELERYBROKERURL*$CELERY_URL_PROD*g" config/settings.py
- sed -i "s*CELERYRESULTBACKEND*$CELERY_BACKEND_PROD*g" config/settings.py
- sed -i "s*REDISCONFIGURL*$CELERY_BACKEND_HOST_PROD*g" config/settings.py
- sed -i "s*HTTP_HOST_HERE*$HTTP_HOST_PROD*g" Dockerfile
- sed -i "s*STRIPESECRETKEY*$STRIPESECRETKEY_PROD*g" config/settings.py
- sed -i "s*STRIPEPUBLISHABLEKEY*$STRIPEPUBLISHABLEKEY_PROD*g" config/settings.py
- sed -i "s*BROADCASTINTERNALURL*$BROADCASTINTERNALURL_PROD*g" config/settings.py
- sed -i "s*BROADCASTPUSHTOKEN*$BROADCASTPUSHTOKEN_PROD*g" config/settings.py
- sed -i "s*'DEBUGENABLED'*False*g" config/settings.py
- sed -i "s|MY_SECRETKEYHERE|${SECRETKEY_PROD}|g" config/settings.py
- sed -i "s*CRYPTOSECRETKEY_HERE*$CRYPTOSECRETKEY_PROD*g" config/settings.py
- sed -i "s*SYMENCKEY_HERE*$SYMENCKEY_PROD*g" config/settings.py
- sed -i "s*SYMCRYPTONONCE_HERE*$SYMCRYPTONONCE_PROD*g" config/settings.py
- sed -i "s*AMAZONSECRETKEY_HERE*$AMAZONSECRETKEY_PROD*g" config/settings.py
- sed -i "s*AMAZONACCESSKEY_HERE*$AMAZONACCESSKEY_PROD*g" config/settings.py
- sed -i "s*AMAZONREGIONNAME_HERE*$AMAZONREGIONNAME_PROD*g" config/settings.py
- sed -i "s*AMAZONSESEMAILSOURCE_HERE*$AMAZONSESEMAILSOURCE_PROD*g" config/settings.py
- sed -i "s*AUTOPAYAPPSOURCE_HERE*$AUTOPAYAPPSOURCE_PROD*g" config/settings.py
- sed -i "s*AUTOPAYSECRETKEY_HERE*$AUTOPAYSECRETKEY_PROD*g" config/settings.py
- sed -i "s*AUTOPAYSOURCEKEY_HERE*$AUTOPAYSOURCEKEY_PROD*g" config/settings.py
- sed -i "s*PARTNERSHIPBUCKETHERE*$PARTNERSHIPBUCKET_PROD*g" config/settings.py
- sed -i "s*RECORDINGBUCKETHERE*$RECORDINGBUCKET_PROD*g" config/settings.py
- sed -i "s*HOLDMUSICBUCKETHERE*$HOLDMUSICBUCKET_PROD*g" config/settings.py
- sed -i "s*WHISPERBUCKETHERE*$WHISPERBUCKET_PROD*g" config/settings.py
- sed -i "s*MMSBUCKETHERE*$MMSBUCKET_PROD*g" config/settings.py
- sed -i "s*QRBUCKETHERE*$QRBUCKET_PROD*g" config/settings.py
- sed -i "s*EQPDFBUCKETHERE*$EQPDFBUCKET_PROD*g" config/settings.py
- sed -i "s*TWILIOACCOUNTSIDHERE*$TWILIOACCOUNTSID_PROD*g" config/settings.py
- sed -i "s*TWILIOAUTHTOKENHERE*$TWILIOAUTHTOKEN_PROD*g" config/settings.py
- sed -i "s*TWILIOCALLERIDHERE*$TWILIOCALLERID_PROD*g" config/settings.py
- sed -i "s*SERVERDOMAINHERE*$HTTP_HOST_PROD*g" config/settings.py
- sed -i "s*MAILUSERNAMEHERE*$MAILUSERNAME_PROD*g" config/settings.py
- sed -i "s*MAILPASSWORDHERE*$MAILPASSWORD_PROD*g" config/settings.py
- sed -i "s*MAILDEFAULTSENDERHERE*$MAILDEFAULTSENDER_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHUSERIDHERE*$BANDWIDTHUSERID_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHAPITOKENHERE*$BANDWIDTHAPITOKEN_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHAPISECRETHERE*$BANDWIDTHAPISECRET_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDHERE*$BANDWIDTHCALLERID_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDMOBILEHERE*$BANDWIDTHCALLERIDMOBILE_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHORDERIDHERE*$BANDWIDTHORDERID_DEV*g" config/settings.py
- sed -i "s*RC_SITEKEYHERE*$RCSITEKEY*g" config/settings.py
- sed -i "s*RC_SECRETKEYHERE*$RCSECRETKEY*g" config/settings.py
- sed -i "s*'DEBUGTBINTERCEPTREDIRECTSHERE'*False*g" config/settings.py
- sed -i "s*'DEBUGTBENABLEDHERE'*False*g" config/settings.py
- sed -i "s*REDISCONFIGPORT*$REDISCONFIGPORT_PROD*g" config/settings.py
- sed -i "s*ANALYTICSGOOGLEUA*$ANALYTICSGOOGLEUA*g" config/settings.py
- sed -i "s*'SQLALCHEMYPOOLSIZE'*$SQLALCHEMYPOOLSIZE_PROD*g" config/settings.py
- sed -i "s*'CELERYREDISMAXCONNECTIONS'*$CELREDISMAXCON_PROD*g" config/settings.py
- sed -i "s*WIDGETBUCKETHERE*$WIDGETBUCKET_PROD*g" config/settings.py
- sed -i "s*'MOBILEAPPTESTMODEHERE'*$MOBILEAPPTESTMODE_PROD*g" config/settings.py
- sed -i "s*'CELERYDTASKSOFTTIMELIMIT'*$CELERYDTASKSOFTTIMELIMIT_PROD*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREFRONTEND'*$AWSPRESIGNEDURLEXPIREFRONTEND_PROD*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREWEBHOOK'*$AWSPRESIGNEDURLEXPIREWEBHOOK_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKUSERNAMEHERE*$BANDWIDTHCALLBACKUSERNAME_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKPASSWORDHERE*$BANDWIDTHCALLBACKPASSWORD_PROD*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAIGNIDHERE*$SMSMOBILECAMPAIGNID_PROD*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAINCLASSHERE*$SMSMOBILECAMPAIGNCLASS_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPACCOUNTIDHERE*$BANDWIDTHSIPACCOUNTID_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSITEIDHERE*$BANDWIDTHSIPSITEID_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPLOCATIONIDHERE*$BANDWIDTHSIPLOCATIONID_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPVOICEAPPIDHERE*$BANDWIDTHSIPVOICEAPPID_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSMSAPPIDHERE*$BANDWIDTHSIPSMSAPPID_PROD*g" config/settings.py
- sed -i "s*'CONDITIONALNOTIFICATIONDELAYHERE'*$CONDITIONALNOTIFICATIONDELAY_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPCNAMPWDHERE*$BANDWIDTHSIPCNAMEPWD_PROD*g" config/settings.py
- sed -i "s*GOOGLERCSITEKEYV3HERE*$GOOGLERCV3SITEKEY_PROD*g" config/settings.py
- sed -i "s*GOOGLERCSECRETKEYV3HERE*$GOOGLERCV3SECRETKEY_PROD*g" config/settings.py
- sed -i "s*'FLASKSESSIONLIFETIME'*$FLASKSESSIONLIFETIME_PROD*g" config/settings.py
- sed -i "s*IPAPIKEYHERE*$IPAPIKEYHERE_PROD*g" config/settings.py
- sed -i "s*AMSLISTURLHERE*$AMSLISTURL_PROD*g" config/settings.py
- sed -i "s*AMSLISTCLIENTKEYHERE*$AMSLISTCLIENTKEY_PROD*g" config/settings.py
- sed -i "s*AMSLISTCLIENTSECRETHERE*$AMSLISTCLIENTSECRET_PROD*g" config/settings.py
# create an empty settings.py in instance folder
- touch instance/settings.py
# aws login
- eval $(aws ecr get-login --region ${AWS_DEFAULT_REGION} --no-include-email)
# web
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- docker build -t ${AWS_REGISTRY_URL}/buyercall:prod .
- docker push ${AWS_REGISTRY_URL}/buyercall:prod
# nginx
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- cd nginx
- mv Dockerfile.prod Dockerfile
- docker build -t ${AWS_REGISTRY_URL}/nginx:prod .
- docker push ${AWS_REGISTRY_URL}/nginx:prod
- cd ..
# Create a new task definition ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-prod-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-prod --cluster buyercall-prod --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment started. Waiting..."
- sleep 600
- aws ecs wait services-stable --service bc-prod --region ${AWS_DEFAULT_REGION} --cluster buyercall-prod
# Create a new task definition for celery ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-prod-celery-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-prod-celery --cluster buyercall-prod --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-prod-celery --region ${AWS_DEFAULT_REGION} --cluster buyercall-prod
# Create a new task definition for celery beat ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-prod-beat-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-prod-beat --cluster buyercall-prod --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-prod-beat --region ${AWS_DEFAULT_REGION} --cluster buyercall-prod
- echo "Deployment completed"
staging:
#- step:
# name: Check PEP8
# caches:
# - pip
# script:
#- sudo apt-get update && apt-get install -q -y python-setuptools python-dev
#- sudo easy_install pip
#- pip install pip --upgrade
#- pip install --upgrade setuptools
#- pip install flake8 pytest pytest-cov
#- find buyercall/ -name '*.py' | grep -v migrations | xargs flake8 --max-line-length=120 --ignore=E402
#- pytest --cov=buyercall
- step:
name: Building docker images and deploy
services:
- docker
caches:
- docker
image: tstrohmeier/awscli:latest
deployment: test
script:
- mv Dockerfile.stage Dockerfile
# setting variables
- sed -i "s*DB_URI*$DB_URI_STAGE*g" config/settings.py
- sed -i "s*CACHEREDISURL*$CACHE_REDIS_STAGE*g" config/settings.py
- sed -i "s*CELERYBROKERURL*$CELERY_URL_STAGE*g" config/settings.py
- sed -i "s*CELERYRESULTBACKEND*$CELERY_BACKEND_STAGE*g" config/settings.py
- sed -i "s*REDISCONFIGURL*$CELERY_BACKEND_HOST_STAGE*g" config/settings.py
- sed -i "s*HTTP_HOST_HERE*$HTTP_HOST_STAGE*g" Dockerfile
- sed -i "s*STRIPESECRETKEY*$STRIPESECRETKEY_STAGE*g" config/settings.py
- sed -i "s*STRIPEPUBLISHABLEKEY*$STRIPEPUBLISHABLEKEY_STAGE*g" config/settings.py
- sed -i "s*BROADCASTINTERNALURL*$BROADCASTINTERNALURL_STAGE*g" config/settings.py
- sed -i "s*BROADCASTPUSHTOKEN*$BROADCASTPUSHTOKEN_STAGE*g" config/settings.py
- sed -i "s*'DEBUGENABLED'*True*g" config/settings.py
- sed -i "s|MY_SECRETKEYHERE|${SECRETKEY_STAGE}|g" config/settings.py
- sed -i "s*CRYPTOSECRETKEY_HERE*$CRYPTOSECRETKEY_STAGE*g" config/settings.py
- sed -i "s*SYMENCKEY_HERE*$SYMENCKEY_DEV*g" config/settings.py
- sed -i "s*SYMCRYPTONONCE_HERE*$SYMCRYPTONONCE_DEV*g" config/settings.py
- sed -i "s*AMAZONSECRETKEY_HERE*$AMAZONSECRETKEY_STAGE*g" config/settings.py
- sed -i "s*AMAZONACCESSKEY_HERE*$AMAZONACCESSKEY_STAGE*g" config/settings.py
- sed -i "s*AMAZONREGIONNAME_HERE*$AMAZONREGIONNAME_DEV*g" config/settings.py
- sed -i "s*AMAZONSESEMAILSOURCE_HERE*$AMAZONSESEMAILSOURCE_STAGE*g" config/settings.py
- sed -i "s*AUTOPAYAPPSOURCE_HERE*$AUTOPAYAPPSOURCE_STAGE*g" config/settings.py
- sed -i "s*AUTOPAYSECRETKEY_HERE*$AUTOPAYSECRETKEY_STAGE*g" config/settings.py
- sed -i "s*AUTOPAYSOURCEKEY_HERE*$AUTOPAYSOURCEKEY_STAGE*g" config/settings.py
- sed -i "s*PARTNERSHIPBUCKETHERE*$PARTNERSHIPBUCKET_STAGE*g" config/settings.py
- sed -i "s*RECORDINGBUCKETHERE*$RECORDINGBUCKET_STAGE*g" config/settings.py
- sed -i "s*HOLDMUSICBUCKETHERE*$HOLDMUSICBUCKET_STAGE*g" config/settings.py
- sed -i "s*WHISPERBUCKETHERE*$WHISPERBUCKET_STAGE*g" config/settings.py
- sed -i "s*MMSBUCKETHERE*$MMSBUCKET_STAGE*g" config/settings.py
- sed -i "s*QRBUCKETHERE*$QRBUCKET_STAGE*g" config/settings.py
- sed -i "s*EQPDFBUCKETHERE*$EQPDFBUCKET_DEV*g" config/settings.py
- sed -i "s*TWILIOACCOUNTSIDHERE*$TWILIOACCOUNTSID_STAGE*g" config/settings.py
- sed -i "s*TWILIOAUTHTOKENHERE*$TWILIOAUTHTOKEN_STAGE*g" config/settings.py
- sed -i "s*TWILIOCALLERIDHERE*$TWILIOCALLERID_STAGE*g" config/settings.py
- sed -i "s*SERVERDOMAINHERE*$HTTP_HOST_STAGE*g" config/settings.py
- sed -i "s*MAILUSERNAMEHERE*$MAILUSERNAME_STAGE*g" config/settings.py
- sed -i "s*MAILDEFAULTSENDERHERE*$MAILDEFAULTSENDER_STAGE*g" config/settings.py
- sed -i "s*MAILPASSWORDHERE*$MAILPASSWORD_STAGE*g" config/settings.py
- sed -i "s*BANDWIDTHUSERIDHERE*$BANDWIDTHUSERID_STAGE*g" config/settings.py
- sed -i "s*BANDWIDTHAPITOKENHERE*$BANDWIDTHAPITOKEN_STAGE*g" config/settings.py
- sed -i "s*BANDWIDTHAPISECRETHERE*$BANDWIDTHAPISECRET_STAGE*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDHERE*$BANDWIDTHCALLERID_STAGE*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDMOBILEHERE*$BANDWIDTHCALLERIDMOBILE_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHORDERIDHERE*$BANDWIDTHORDERID_DEV*g" config/settings.py
- sed -i "s*RC_SITEKEYHERE*$RCSITEKEY*g" config/settings.py
- sed -i "s*RC_SECRETKEYHERE*$RCSECRETKEY*g" config/settings.py
- sed -i "s*'DEBUGTBINTERCEPTREDIRECTSHERE'*False*g" config/settings.py
- sed -i "s*'DEBUGTBENABLEDHERE'*False*g" config/settings.py
- sed -i "s*BRANCHSQL_HERE*stage*g" deploy/dumps/recreate.sh
- sed -i "s*BRANCH_HERE*stage*g" deploy/dumps/recreate.sh
- sed -i "s|CONNECTIONPOSTGRESSTRING_HERE|$POSTGRES_DEV|g" deploy/dumps/recreate.sh
- sed -i "s*CONNECTIONSTRING_HERE*$DB_URI_STAGE*g" deploy/dumps/recreate.sh
- sed -i "s*REDISCONFIGPORT*$REDISCONFIGPORT_STAGE*g" config/settings.py
- sed -i "s*ANALYTICSGOOGLEUA**g" config/settings.py
- sed -i "s*'SQLALCHEMYPOOLSIZE'*$SQLALCHEMYPOOLSIZE_STAGE*g" config/settings.py
- sed -i "s*'CELERYREDISMAXCONNECTIONS'*$CELREDISMAXCON_STAGE*g" config/settings.py
- sed -i "s*WIDGETBUCKETHERE*$WIDGETBUCKET_STAGE*g" config/settings.py
- sed -i "s*'MOBILEAPPTESTMODEHERE'*$MOBILEAPPTESTMODE_STAGE*g" config/settings.py
- sed -i "s*'CELERYDTASKSOFTTIMELIMIT'*$CELERYDTASKSOFTTIMELIMIT_STAGE*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREFRONTEND'*$AWSPRESIGNEDURLEXPIREFRONTEND_STAGE*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREWEBHOOK'*$AWSPRESIGNEDURLEXPIREWEBHOOK_STAGE*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKUSERNAMEHERE*$BANDWIDTHCALLBACKUSERNAME_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKPASSWORDHERE*$BANDWIDTHCALLBACKPASSWORD_DEV*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAIGNIDHERE*$SMSMOBILECAMPAIGNID_PROD*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAINCLASSHERE*$SMSMOBILECAMPAIGNCLASS_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPACCOUNTIDHERE*$BANDWIDTHSIPACCOUNTID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSITEIDHERE*$BANDWIDTHSIPSITEID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPLOCATIONIDHERE*$BANDWIDTHSIPLOCATIONID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPVOICEAPPIDHERE*$BANDWIDTHSIPVOICEAPPID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSMSAPPIDHERE*$BANDWIDTHSIPSMSAPPID_DEV*g" config/settings.py
- sed -i "s*'CONDITIONALNOTIFICATIONDELAYHERE'*$CONDITIONALNOTIFICATIONDELAY_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPCNAMPWDHERE*$BANDWIDTHSIPCNAMEPWD_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSITEKEYV3HERE*$GOOGLERCV3SITEKEY_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSECRETKEYV3HERE*$GOOGLERCV3SECRETKEY_DEV*g" config/settings.py
- sed -i "s*'FLASKSESSIONLIFETIME'*$FLASKSESSIONLIFETIME_DEV*g" config/settings.py
- sed -i "s*IPAPIKEYHERE*$IPAPIKEYHERE_DEV*g" config/settings.py
- sed -i "s*AMSLISTURLHERE*$AMSLISTURL_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTKEYHERE*$AMSLISTCLIENTKEY_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTSECRETHERE*$AMSLISTCLIENTSECRET_DEV*g" config/settings.py
#- cd deploy/dumps && scp * ubuntu@52.27.77.223:/home/ubuntu/db/stage && cd /opt/atlassian/pipelines/agent/build/
#- ssh ubuntu@52.27.77.223 'chmod +x /home/ubuntu/db/stage/recreate.sh && cd /home/ubuntu/db/stage/ && ./recreate.sh'
# create an empty settings.py in instance folder
- touch instance/settings.py
# aws login
- eval $(aws ecr get-login --region ${AWS_DEFAULT_REGION} --no-include-email)
# web
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- docker build -t ${AWS_REGISTRY_URL}/buyercall:stage .
- docker push ${AWS_REGISTRY_URL}/buyercall:stage
# nginx
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- cd nginx
- mv Dockerfile.dev Dockerfile
- docker build -t ${AWS_REGISTRY_URL}/nginx:stage .
- docker push ${AWS_REGISTRY_URL}/nginx:stage
- cd ..
# Create a new task definition for website ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-stage-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-stage --cluster buyercall-stage --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment started. Waiting..."
- aws ecs wait services-stable --service bc-stage --region ${AWS_DEFAULT_REGION} --cluster buyercall-stage
# Create a new task definition for celery ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-stage-celery-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-stage-celery --cluster buyercall-stage --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-stage-celery --region ${AWS_DEFAULT_REGION} --cluster buyercall-stage
# Create a new task definition for celery beat ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-stage-beat-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-stage-beat --cluster buyercall-stage --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-stage-beat --region ${AWS_DEFAULT_REGION} --cluster buyercall-stage
- echo "Deployment completed"
develop:
#- step:
# name: Check PEP8
# caches:
# - pip
# script:
#- sudo apt-get update && apt-get install -q -y python-setuptools python-dev
#- sudo easy_install pip
#- pip install pip --upgrade
#- pip install --upgrade setuptools
#- pip install flake8 pytest pytest-cov
#- find buyercall/ -name '*.py' | grep -v migrations | xargs flake8 --max-line-length=120 --ignore=E402
#- pytest --cov=buyercall
- step:
name: Building docker images and deploy
services:
- docker
caches:
- docker
image: tstrohmeier/awscli:latest
deployment: test
script:
- mv Dockerfile.dev Dockerfile
# setting variables
- sed -i "s*DB_URI*$DB_URI_DEV*g" config/settings.py
- sed -i "s*CACHEREDISURL*$CACHE_REDIS_DEV*g" config/settings.py
- sed -i "s*CELERYBROKERURL*$CELERY_URL_DEV*g" config/settings.py
- sed -i "s*CELERYRESULTBACKEND*$CELERY_BACKEND_DEV*g" config/settings.py
- sed -i "s*REDISCONFIGURL*$CELERY_BACKEND_HOST_DEV*g" config/settings.py
- sed -i "s*HTTP_HOST_HERE*$HTTP_HOST_DEV*g" Dockerfile
- sed -i "s*STRIPESECRETKEY*$STRIPESECRETKEY_DEV*g" config/settings.py
- sed -i "s*STRIPEPUBLISHABLEKEY*$STRIPEPUBLISHABLEKEY_DEV*g" config/settings.py
- sed -i "s*BROADCASTINTERNALURL*$BROADCASTINTERNALURL_DEV*g" config/settings.py
- sed -i "s*BROADCASTPUSHTOKEN*$BROADCASTPUSHTOKEN_DEV*g" config/settings.py
- sed -i "s*'DEBUGENABLED'*False*g" config/settings.py
- sed -i "s|MY_SECRETKEYHERE|${SECRETKEY_DEV}|g" config/settings.py
- sed -i "s*CRYPTOSECRETKEY_HERE*$CRYPTOSECRETKEY_DEV*g" config/settings.py
- sed -i "s*SYMENCKEY_HERE*$SYMENCKEY_DEV*g" config/settings.py
- sed -i "s*SYMCRYPTONONCE_HERE*$SYMCRYPTONONCE_DEV*g" config/settings.py
- sed -i "s*AMAZONSECRETKEY_HERE*$AMAZONSECRETKEY_DEV*g" config/settings.py
- sed -i "s*AMAZONACCESSKEY_HERE*$AMAZONACCESSKEY_DEV*g" config/settings.py
- sed -i "s*AMAZONREGIONNAME_HERE*$AMAZONREGIONNAME_DEV*g" config/settings.py
- sed -i "s*AMAZONSESEMAILSOURCE_HERE*$AMAZONSESEMAILSOURCE_DEV*g" config/settings.py
- sed -i "s*AUTOPAYAPPSOURCE_HERE*$AUTOPAYAPPSOURCE_DEV*g" config/settings.py
- sed -i "s*AUTOPAYSECRETKEY_HERE*$AUTOPAYSECRETKEY_DEV*g" config/settings.py
- sed -i "s*AUTOPAYSOURCEKEY_HERE*$AUTOPAYSOURCEKEY_DEV*g" config/settings.py
- sed -i "s*PARTNERSHIPBUCKETHERE*$PARTNERSHIPBUCKET_DEV*g" config/settings.py
- sed -i "s*RECORDINGBUCKETHERE*$RECORDINGBUCKET_DEV*g" config/settings.py
- sed -i "s*HOLDMUSICBUCKETHERE*$HOLDMUSICBUCKET_DEV*g" config/settings.py
- sed -i "s*WHISPERBUCKETHERE*$WHISPERBUCKET_DEV*g" config/settings.py
- sed -i "s*MMSBUCKETHERE*$MMSBUCKET_DEV*g" config/settings.py
- sed -i "s*QRBUCKETHERE*$QRBUCKET_DEV*g" config/settings.py
- sed -i "s*EQPDFBUCKETHERE*$EQPDFBUCKET_DEV*g" config/settings.py
- sed -i "s*TWILIOACCOUNTSIDHERE*$TWILIOACCOUNTSID_DEV*g" config/settings.py
- sed -i "s*TWILIOAUTHTOKENHERE*$TWILIOAUTHTOKEN_DEV*g" config/settings.py
- sed -i "s*TWILIOCALLERIDHERE*$TWILIOCALLERID_DEV*g" config/settings.py
- sed -i "s*SERVERDOMAINHERE*$HTTP_HOST_DEV*g" config/settings.py
- sed -i "s*MAILUSERNAMEHERE*$MAILUSERNAME_DEV*g" config/settings.py
- sed -i "s*MAILPASSWORDHERE*$MAILPASSWORD_DEV*g" config/settings.py
- sed -i "s*MAILDEFAULTSENDERHERE*$MAILDEFAULTSENDER_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHUSERIDHERE*$BANDWIDTHUSERID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHAPITOKENHERE*$BANDWIDTHAPITOKEN_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHAPISECRETHERE*$BANDWIDTHAPISECRET_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDHERE*$BANDWIDTHCALLERID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDMOBILEHERE*$BANDWIDTHCALLERIDMOBILE_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHORDERIDHERE*$BANDWIDTHORDERID_DEV*g" config/settings.py
- sed -i "s*RC_SITEKEYHERE*$RCSITEKEY*g" config/settings.py
- sed -i "s*RC_SECRETKEYHERE*$RCSECRETKEY*g" config/settings.py
- sed -i "s*'DEBUGTBINTERCEPTREDIRECTSHERE'*False*g" config/settings.py
- sed -i "s*'DEBUGTBENABLEDHERE'*False*g" config/settings.py
- sed -i "s*BRANCHSQL_HERE*dev*g" deploy/dumps/recreate.sh
- sed -i "s*BRANCH_HERE*dev*g" deploy/dumps/recreate.sh
- sed -i "s|CONNECTIONPOSTGRESSTRING_HERE|$POSTGRES_DEV|g" deploy/dumps/recreate.sh
- sed -i "s*CONNECTIONSTRING_HERE*$DB_URI_DEV*g" deploy/dumps/recreate.sh
- sed -i "s*REDISCONFIGPORT*$REDISCONFIGPORT_DEV*g" config/settings.py
- sed -i "s*ANALYTICSGOOGLEUA**g" config/settings.py
- sed -i "s*'SQLALCHEMYPOOLSIZE'*$SQLALCHEMYPOOLSIZE_DEV*g" config/settings.py
- sed -i "s*'CELERYREDISMAXCONNECTIONS'*$CELREDISMAXCON_DEV*g" config/settings.py
- sed -i "s*WIDGETBUCKETHERE*$WIDGETBUCKET_DEV*g" config/settings.py
- sed -i "s*'MOBILEAPPTESTMODEHERE'*$MOBILEAPPTESTMODE_DEV*g" config/settings.py
- sed -i "s*'CELERYDTASKSOFTTIMELIMIT'*$CELERYDTASKSOFTTIMELIMIT_DEV*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREFRONTEND'*$AWSPRESIGNEDURLEXPIREFRONTEND_DEV*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREWEBHOOK'*$AWSPRESIGNEDURLEXPIREWEBHOOK_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKUSERNAMEHERE*$BANDWIDTHCALLBACKUSERNAME_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKPASSWORDHERE*$BANDWIDTHCALLBACKPASSWORD_DEV*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAIGNIDHERE*$SMSMOBILECAMPAIGNID_PROD*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAINCLASSHERE*$SMSMOBILECAMPAIGNCLASS_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPACCOUNTIDHERE*$BANDWIDTHSIPACCOUNTID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSITEIDHERE*$BANDWIDTHSIPSITEID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPLOCATIONIDHERE*$BANDWIDTHSIPLOCATIONID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPVOICEAPPIDHERE*$BANDWIDTHSIPVOICEAPPID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSMSAPPIDHERE*$BANDWIDTHSIPSMSAPPID_DEV*g" config/settings.py
- sed -i "s*'CONDITIONALNOTIFICATIONDELAYHERE'*$CONDITIONALNOTIFICATIONDELAY_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPCNAMPWDHERE*$BANDWIDTHSIPCNAMEPWD_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSITEKEYV3HERE*$GOOGLERCV3SITEKEY_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSECRETKEYV3HERE*$GOOGLERCV3SECRETKEY_DEV*g" config/settings.py
- sed -i "s*'FLASKSESSIONLIFETIME'*$FLASKSESSIONLIFETIME_DEV*g" config/settings.py
- sed -i "s*IPAPIKEYHERE*$IPAPIKEYHERE_DEV*g" config/settings.py
- sed -i "s*AMSLISTURLHERE*$AMSLISTURL_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTKEYHERE*$AMSLISTCLIENTKEY_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTSECRETHERE*$AMSLISTCLIENTSECRET_DEV*g" config/settings.py
#- cd deploy/dumps && scp * ubuntu@52.27.77.223:/home/ubuntu/db/dev && cd /opt/atlassian/pipelines/agent/build/
#- ssh ubuntu@52.27.77.223 'chmod +x /home/ubuntu/db/dev/recreate.sh && cd /home/ubuntu/db/dev/ && ./recreate.sh'
# create an empty settings.py in instance folder
- touch instance/settings.py
# aws login
- eval $(aws ecr get-login --region ${AWS_DEFAULT_REGION} --no-include-email)
# web
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- docker build -t ${AWS_REGISTRY_URL}/buyercall:development .
- docker push ${AWS_REGISTRY_URL}/buyercall:development
# nginx
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- cd nginx
- mv Dockerfile.dev Dockerfile
- docker build -t ${AWS_REGISTRY_URL}/nginx:development .
- docker push ${AWS_REGISTRY_URL}/nginx:development
- cd ..
# Create a new task definition for website ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-dev-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-dev --cluster buyercall-dev --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of website started. Waiting..."
- sleep 300
- aws ecs wait services-stable --service bc-dev --region ${AWS_DEFAULT_REGION} --cluster buyercall-dev
# Create a new task definition for celery ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-dev-celery-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-dev-celery --cluster buyercall-dev --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-dev-celery --region ${AWS_DEFAULT_REGION} --cluster buyercall-dev
# Create a new task definition for celery beat ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-dev-beat-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-dev-beat --cluster buyercall-dev --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-dev-beat --region ${AWS_DEFAULT_REGION} --cluster buyercall-dev
- echo "Deployment completed"
demo:
#- step:
# name: Check PEP8
# caches:
# - pip
# script:
#- sudo apt-get update && apt-get install -q -y python-setuptools python-dev
#- sudo easy_install pip
#- pip install pip --upgrade
#- pip install --upgrade setuptools
#- pip install flake8 pytest pytest-cov
#- find buyercall/ -name '*.py' | grep -v migrations | xargs flake8 --max-line-length=120 --ignore=E402
#- pytest --cov=buyercall
- step:
name: Building docker images and deploy
services:
- docker
caches:
- docker
image: tstrohmeier/awscli:latest
deployment: test
script:
- mv Dockerfile.demo Dockerfile
# setting variables
- sed -i "s*DB_URI*$DB_URI_DEMO*g" config/settings.py
- sed -i "s*CACHEREDISURL*$CACHE_REDIS_DEMO*g" config/settings.py
- sed -i "s*CELERYBROKERURL*$CELERY_URL_DEMO*g" config/settings.py
- sed -i "s*CELERYRESULTBACKEND*$CELERY_BACKEND_DEMO*g" config/settings.py
- sed -i "s*REDISCONFIGURL*$CELERY_BACKEND_HOST_DEMO*g" config/settings.py
- sed -i "s*HTTP_HOST_HERE*$HTTP_HOST_DEMO*g" Dockerfile
- sed -i "s*STRIPESECRETKEY*$STRIPESECRETKEY_DEMO*g" config/settings.py
- sed -i "s*STRIPEPUBLISHABLEKEY*$STRIPEPUBLISHABLEKEY_DEMO*g" config/settings.py
- sed -i "s*BROADCASTINTERNALURL*$BROADCASTINTERNALURL_DEMO*g" config/settings.py
- sed -i "s*BROADCASTPUSHTOKEN*$BROADCASTPUSHTOKEN_DEMO*g" config/settings.py
- sed -i "s*'DEBUGENABLED'*False*g" config/settings.py
- sed -i "s@MY_SECRETKEYHERE@${SECRETKEY_DEMO}@g" config/settings.py
- sed -i "s*CRYPTOSECRETKEY_HERE*$CRYPTOSECRETKEY_DEMO*g" config/settings.py
- sed -i "s*SYMENCKEY_HERE*$SYMENCKEY_DEV*g" config/settings.py
- sed -i "s*SYMCRYPTONONCE_HERE*$SYMCRYPTONONCE_DEV*g" config/settings.py
- sed -i "s*AMAZONSECRETKEY_HERE*$AMAZONSECRETKEY_DEMO*g" config/settings.py
- sed -i "s*AMAZONACCESSKEY_HERE*$AMAZONACCESSKEY_DEMO*g" config/settings.py
- sed -i "s*AMAZONREGIONNAME_HERE*$AMAZONREGIONNAME_DEV*g" config/settings.py
- sed -i "s*AMAZONSESEMAILSOURCE_HERE*$AMAZONSESEMAILSOURCE_DEMO*g" config/settings.py
- sed -i "s*AUTOPAYAPPSOURCE_HERE*$AUTOPAYAPPSOURCE_DEMO*g" config/settings.py
- sed -i "s*AUTOPAYSECRETKEY_HERE*$AUTOPAYSECRETKEY_DEMO*g" config/settings.py
- sed -i "s*AUTOPAYSOURCEKEY_HERE*$AUTOPAYSOURCEKEY_DEMO*g" config/settings.py
- sed -i "s*PARTNERSHIPBUCKETHERE*$PARTNERSHIPBUCKET_DEMO*g" config/settings.py
- sed -i "s*RECORDINGBUCKETHERE*$RECORDINGBUCKET_DEMO*g" config/settings.py
- sed -i "s*HOLDMUSICBUCKETHERE*$HOLDMUSICBUCKET_DEMO*g" config/settings.py
- sed -i "s*WHISPERBUCKETHERE*$WHISPERBUCKET_DEMO*g" config/settings.py
- sed -i "s*MMSBUCKETHERE*$MMSBUCKET_DEMO*g" config/settings.py
- sed -i "s*QRBUCKETHERE*$QRBUCKET_DEMO*g" config/settings.py
- sed -i "s*EQPDFBUCKETHERE*$EQPDFBUCKET_DEV*g" config/settings.py
- sed -i "s*TWILIOACCOUNTSIDHERE*$TWILIOACCOUNTSID_DEMO*g" config/settings.py
- sed -i "s*TWILIOAUTHTOKENHERE*$TWILIOAUTHTOKEN_DEMO*g" config/settings.py
- sed -i "s*TWILIOCALLERIDHERE*$TWILIOCALLERID_DEMO*g" config/settings.py
- sed -i "s*SERVERDOMAINHERE*$HTTP_HOST_DEMO*g" config/settings.py
- sed -i "s*MAILUSERNAMEHERE*$MAILUSERNAME_DEMO*g" config/settings.py
- sed -i "s*MAILPASSWORDHERE*$MAILPASSWORD_DEMO*g" config/settings.py
- sed -i "s*MAILDEFAULTSENDERHERE*$MAILDEFAULTSENDER_DEMO*g" config/settings.py
- sed -i "s*BANDWIDTHUSERIDHERE*$BANDWIDTHUSERID_DEMO*g" config/settings.py
- sed -i "s*BANDWIDTHAPITOKENHERE*$BANDWIDTHAPITOKEN_DEMO*g" config/settings.py
- sed -i "s*BANDWIDTHAPISECRETHERE*$BANDWIDTHAPISECRET_DEMO*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDHERE*$BANDWIDTHCALLERID_DEMO*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDMOBILEHERE*$BANDWIDTHCALLERIDMOBILE_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHORDERIDHERE*$BANDWIDTHORDERID_DEV*g" config/settings.py
- sed -i "s*RC_SITEKEYHERE*$RCSITEKEY*g" config/settings.py
- sed -i "s*RC_SECRETKEYHERE*$RCSECRETKEY*g" config/settings.py
- sed -i "s*'DEBUGTBINTERCEPTREDIRECTSHERE'*False*g" config/settings.py
- sed -i "s*'DEBUGTBENABLEDHERE'*False*g" config/settings.py
- sed -i "s*REDISCONFIGPORT*$REDISCONFIGPORT_DEMO*g" config/settings.py
- sed -i "s*ANALYTICSGOOGLEUA**g" config/settings.py
- sed -i "s*'SQLALCHEMYPOOLSIZE'*$SQLALCHEMYPOOLSIZE_DEMO*g" config/settings.py
- sed -i "s*'CELERYREDISMAXCONNECTIONS'*$CELREDISMAXCON_DEMO*g" config/settings.py
- sed -i "s*WIDGETBUCKETHERE*$WIDGETBUCKET_DEMO*g" config/settings.py
- sed -i "s*'MOBILEAPPTESTMODEHERE'*$MOBILEAPPTESTMODE_DEMO*g" config/settings.py
- sed -i "s*'CELERYDTASKSOFTTIMELIMIT'*$CELERYDTASKSOFTTIMELIMIT_DEMO*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREFRONTEND'*$AWSPRESIGNEDURLEXPIREFRONTEND_DEMO*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREWEBHOOK'*$AWSPRESIGNEDURLEXPIREWEBHOOK_DEMO*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKUSERNAMEHERE*$BANDWIDTHCALLBACKUSERNAME_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKPASSWORDHERE*$BANDWIDTHCALLBACKPASSWORD_DEV*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAIGNIDHERE*$SMSMOBILECAMPAIGNID_PROD*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAINCLASSHERE*$SMSMOBILECAMPAIGNCLASS_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPACCOUNTIDHERE*$BANDWIDTHSIPACCOUNTID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSITEIDHERE*$BANDWIDTHSIPSITEID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPLOCATIONIDHERE*$BANDWIDTHSIPLOCATIONID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPVOICEAPPIDHERE*$BANDWIDTHSIPVOICEAPPID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSMSAPPIDHERE*$BANDWIDTHSIPSMSAPPID_DEV*g" config/settings.py
- sed -i "s*'CONDITIONALNOTIFICATIONDELAYHERE'*$CONDITIONALNOTIFICATIONDELAY_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPCNAMPWDHERE*$BANDWIDTHSIPCNAMEPWD_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSITEKEYV3HERE*$GOOGLERCV3SITEKEY_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSECRETKEYV3HERE*$GOOGLERCV3SECRETKEY_DEV*g" config/settings.py
- sed -i "s*'FLASKSESSIONLIFETIME'*$FLASKSESSIONLIFETIME_DEV*g" config/settings.py
- sed -i "s*IPAPIKEYHERE*$IPAPIKEYHERE_DEV*g" config/settings.py
- sed -i "s*AMSLISTURLHERE*$AMSLISTURL_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTKEYHERE*$AMSLISTCLIENTKEY_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTSECRETHERE*$AMSLISTCLIENTSECRET_DEV*g" config/settings.py
# create an empty settings.py in instance folder
- touch instance/settings.py
# aws login
- eval $(aws ecr get-login --region ${AWS_DEFAULT_REGION} --no-include-email)
# web
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- docker build -t ${AWS_REGISTRY_URL}/buyercall:demo .
- docker push ${AWS_REGISTRY_URL}/buyercall:demo
# nginx
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- cd nginx
- mv Dockerfile.dev Dockerfile
- docker build -t ${AWS_REGISTRY_URL}/nginx:demo .
- docker push ${AWS_REGISTRY_URL}/nginx:demo
- cd ..
# Create a new task definition for website ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-demo-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-demo --cluster buyercall-demo --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of website started. Waiting..."
- aws ecs wait services-stable --service bc-demo --region ${AWS_DEFAULT_REGION} --cluster buyercall-demo
# Create a new task definition for celery ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-demo-celery-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-demo-celery --cluster buyercall-demo --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-demo-celery --region ${AWS_DEFAULT_REGION} --cluster buyercall-demo
# Create a new task definition for celery beat ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-demo-beat-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-demo-beat --cluster buyercall-demo --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-demo-beat --region ${AWS_DEFAULT_REGION} --cluster buyercall-demo
- echo "Deployment completed"
feature_python_upgradation:
#- step:
# name: Check PEP8
# caches:
# - pip
# script:
#- sudo apt-get update && apt-get install -q -y python-setuptools python-dev
#- sudo easy_install pip
#- pip install pip --upgrade
#- pip install --upgrade setuptools
#- pip install flake8 pytest pytest-cov
#- find buyercall/ -name '*.py' | grep -v migrations | xargs flake8 --max-line-length=120 --ignore=E402
#- pytest --cov=buyercall
- step:
name: Building docker images and deploy
services:
- docker
caches:
- docker
image: tstrohmeier/awscli:latest
deployment: test
script:
- mv Dockerfile.devpy3 Dockerfile
# setting variables
- sed -i "s*DB_URI*$DB_URI_DEV*g" config/settings.py
- sed -i "s*CACHEREDISURL*$CACHE_REDIS_DEVPY3*g" config/settings.py
- sed -i "s*CELERYBROKERURL*$CELERY_URL_DEVPY3*g" config/settings.py
- sed -i "s*CELERYRESULTBACKEND*$CELERY_BACKEND_DEVPY3*g" config/settings.py
- sed -i "s*REDISCONFIGURL*$CELERY_BACKEND_HOST_DEV*g" config/settings.py
- sed -i "s*HTTP_HOST_HERE*$HTTP_HOST_DEVPY3*g" Dockerfile
- sed -i "s*STRIPESECRETKEY*$STRIPESECRETKEY_DEV*g" config/settings.py
- sed -i "s*STRIPEPUBLISHABLEKEY*$STRIPEPUBLISHABLEKEY_DEV*g" config/settings.py
- sed -i "s*BROADCASTINTERNALURL*$BROADCASTINTERNALURL_DEV*g" config/settings.py
- sed -i "s*BROADCASTPUSHTOKEN*$BROADCASTPUSHTOKEN_DEV*g" config/settings.py
- sed -i "s*'DEBUGENABLED'*False*g" config/settings.py
- sed -i "s|MY_SECRETKEYHERE|${SECRETKEY_DEV}|g" config/settings.py
- sed -i "s*CRYPTOSECRETKEY_HERE*$CRYPTOSECRETKEY_DEV*g" config/settings.py
- sed -i "s*SYMENCKEY_HERE*$SYMENCKEY_DEV*g" config/settings.py
- sed -i "s*SYMCRYPTONONCE_HERE*$SYMCRYPTONONCE_DEV*g" config/settings.py
- sed -i "s*AMAZONSECRETKEY_HERE*$AMAZONSECRETKEY_DEV*g" config/settings.py
- sed -i "s*AMAZONACCESSKEY_HERE*$AMAZONACCESSKEY_DEV*g" config/settings.py
- sed -i "s*AMAZONREGIONNAME_HERE*$AMAZONREGIONNAME_DEV*g" config/settings.py
- sed -i "s*AMAZONSESEMAILSOURCE_HERE*$AMAZONSESEMAILSOURCE_FEAT*g" config/settings.py
- sed -i "s*AUTOPAYAPPSOURCE_HERE*$AUTOPAYAPPSOURCE_DEV*g" config/settings.py
- sed -i "s*AUTOPAYSECRETKEY_HERE*$AUTOPAYSECRETKEY_DEV*g" config/settings.py
- sed -i "s*AUTOPAYSOURCEKEY_HERE*$AUTOPAYSOURCEKEY_DEV*g" config/settings.py
- sed -i "s*PARTNERSHIPBUCKETHERE*$PARTNERSHIPBUCKET_DEV*g" config/settings.py
- sed -i "s*RECORDINGBUCKETHERE*$RECORDINGBUCKET_DEV*g" config/settings.py
- sed -i "s*HOLDMUSICBUCKETHERE*$HOLDMUSICBUCKET_DEV*g" config/settings.py
- sed -i "s*WHISPERBUCKETHERE*$WHISPERBUCKET_DEV*g" config/settings.py
- sed -i "s*MMSBUCKETHERE*$MMSBUCKET_DEV*g" config/settings.py
- sed -i "s*QRBUCKETHERE*$QRBUCKET_DEV*g" config/settings.py
- sed -i "s*EQPDFBUCKETHERE*$EQPDFBUCKET_DEV*g" config/settings.py
- sed -i "s*TWILIOACCOUNTSIDHERE*$TWILIOACCOUNTSID_DEV*g" config/settings.py
- sed -i "s*TWILIOAUTHTOKENHERE*$TWILIOAUTHTOKEN_DEV*g" config/settings.py
- sed -i "s*TWILIOCALLERIDHERE*$TWILIOCALLERID_DEV*g" config/settings.py
- sed -i "s*SERVERDOMAINHERE*$HTTP_HOST_DEVPY3*g" config/settings.py
- sed -i "s*MAILUSERNAMEHERE*$MAILUSERNAME_DEV*g" config/settings.py
- sed -i "s*MAILPASSWORDHERE*$MAILPASSWORD_DEV*g" config/settings.py
- sed -i "s*MAILDEFAULTSENDERHERE*$MAILDEFAULTSENDER_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHUSERIDHERE*$BANDWIDTHUSERID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHAPITOKENHERE*$BANDWIDTHAPITOKEN_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHAPISECRETHERE*$BANDWIDTHAPISECRET_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDHERE*$BANDWIDTHCALLERID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDMOBILEHERE*$BANDWIDTHCALLERIDMOBILE_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHORDERIDHERE*$BANDWIDTHORDERID_DEV*g" config/settings.py
- sed -i "s*RC_SITEKEYHERE*$RCSITEKEY*g" config/settings.py
- sed -i "s*RC_SECRETKEYHERE*$RCSECRETKEY*g" config/settings.py
- sed -i "s*'DEBUGTBINTERCEPTREDIRECTSHERE'*False*g" config/settings.py
- sed -i "s*'DEBUGTBENABLEDHERE'*False*g" config/settings.py
- sed -i "s*REDISCONFIGPORT*$REDISCONFIGPORT_DEV*g" config/settings.py
- sed -i "s*ANALYTICSGOOGLEUA**g" config/settings.py
- sed -i "s*'SQLALCHEMYPOOLSIZE'*$SQLALCHEMYPOOLSIZE_DEV*g" config/settings.py
- sed -i "s*'CELERYREDISMAXCONNECTIONS'*$CELREDISMAXCON_DEV*g" config/settings.py
- sed -i "s*WIDGETBUCKETHERE*$WIDGETBUCKET_DEV*g" config/settings.py
- sed -i "s*'MOBILEAPPTESTMODEHERE'*$MOBILEAPPTESTMODE_DEV*g" config/settings.py
- sed -i "s*'CELERYDTASKSOFTTIMELIMIT'*$CELERYDTASKSOFTTIMELIMIT_DEVPY3*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKUSERNAMEHERE*$BANDWIDTHCALLBACKUSERNAME_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKPASSWORDHERE*$BANDWIDTHCALLBACKPASSWORD_DEV*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAIGNIDHERE*$SMSMOBILECAMPAIGNID_PROD*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAINCLASSHERE*$SMSMOBILECAMPAIGNCLASS_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPACCOUNTIDHERE*$BANDWIDTHSIPACCOUNTID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSITEIDHERE*$BANDWIDTHSIPSITEID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPLOCATIONIDHERE*$BANDWIDTHSIPLOCATIONID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPVOICEAPPIDHERE*$BANDWIDTHSIPVOICEAPPID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSMSAPPIDHERE*$BANDWIDTHSIPSMSAPPID_DEV*g" config/settings.py
- sed -i "s*'CONDITIONALNOTIFICATIONDELAYHERE'*$CONDITIONALNOTIFICATIONDELAY_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPCNAMPWDHERE*$BANDWIDTHSIPCNAMEPWD_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSITEKEYV3HERE*$GOOGLERCV3SITEKEY_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSECRETKEYV3HERE*$GOOGLERCV3SECRETKEY_DEV*g" config/settings.py
- sed -i "s*'FLASKSESSIONLIFETIME'*$FLASKSESSIONLIFETIME_DEV*g" config/settings.py
- sed -i "s*IPAPIKEYHERE*$IPAPIKEYHERE_DEV*g" config/settings.py
- sed -i "s*AMSLISTURLHERE*$AMSLISTURL_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTKEYHERE*$AMSLISTCLIENTKEY_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTSECRETHERE*$AMSLISTCLIENTSECRET_DEV*g" config/settings.py
# create an empty settings.py in instance folder
- touch instance/settings.py
# aws login
- eval $(aws ecr get-login --region ${AWS_DEFAULT_REGION} --no-include-email)
# web
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- docker build -t ${AWS_REGISTRY_URL}/buyercall:devpy3 .
- docker push ${AWS_REGISTRY_URL}/buyercall:devpy3
# nginx
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- cd nginx
- mv Dockerfile.dev Dockerfile
- docker build -t ${AWS_REGISTRY_URL}/nginx:devpy3 .
- docker push ${AWS_REGISTRY_URL}/nginx:devpy3
- cd ..
# Create a new task definition for website ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-devpy3-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-devpy3 --cluster buyercall-devpy3 --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of website started. Waiting..."
- aws ecs wait services-stable --service bc-devpy3 --region ${AWS_DEFAULT_REGION} --cluster buyercall-devpy3
# Create a new task definition for celery ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-devpy3-celery-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-devpy3-celery --cluster buyercall-devpy3 --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-devpy3-celery --region ${AWS_DEFAULT_REGION} --cluster buyercall-devpy3
# Create a new task definition for celery beat ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-devpy3-beat-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-devpy3-beat --cluster buyercall-devpy3 --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment of celery started. Waiting..."
- aws ecs wait services-stable --service bc-devpy3-beat --region ${AWS_DEFAULT_REGION} --cluster buyercall-devpy3
- echo "Deployment completed"
feature/*:
#- step:
# name: Check PEP8
# caches:
# - pip
# script:
#- sudo apt-get update && apt-get install -q -y python-setuptools python-dev
#- sudo easy_install pip
#- pip install pip --upgrade
#- pip install --upgrade setuptools
#- pip install flake8 pytest pytest-cov
#- find buyercall/ -name '*.py' | grep -v migrations | xargs flake8 --max-line-length=120 --ignore=E402
#- pytest --cov=buyercall
- step:
name: Building docker images and deploy
services:
- docker
caches:
- docker
image: tstrohmeier/awscli:latest
deployment: test
script:
# aws login
- eval $(aws ecr get-login --region ${AWS_DEFAULT_REGION} --no-include-email)
- export BUILD_ID=$BITBUCKET_BRANCH_$BITBUCKET_COMMIT_$BITBUCKET_BUILD_NUMBER
- export BRANCH=$(echo ${BITBUCKET_BRANCH#*/} | sed 's/\W\|_/-/g')
- mv Dockerfile.feat Dockerfile
# setting variables
- sed -i "s*DB_URI*$DB_URI_FEAT*g" config/settings.py
- sed -i "s*CACHEREDISURL*$CACHE_REDIS_FEAT*g" config/settings.py
- sed -i "s*CELERYBROKERURL*$CELERY_URL_FEAT*g" config/settings.py
- sed -i "s*CELERYRESULTBACKEND*$CELERY_BACKEND_FEAT*g" config/settings.py
- sed -i "s*REDISCONFIGURL*$CELERY_BACKEND_HOST_FEAT*g" config/settings.py
- sed -i "s*HTTP_HOST_HERE*$BRANCH.f.buyercall.com*g" Dockerfile
- sed -i "s*STRIPESECRETKEY*$STRIPESECRETKEY_FEAT*g" config/settings.py
- sed -i "s*STRIPEPUBLISHABLEKEY*$STRIPEPUBLISHABLEKEY_FEAT*g" config/settings.py
- sed -i "s*BROADCASTINTERNALURL*$BROADCASTINTERNALURL_FEAT*g" config/settings.py
- sed -i "s*BROADCASTPUSHTOKEN*$BROADCASTPUSHTOKEN_FEAT*g" config/settings.py
- sed -i "s*'DEBUGENABLED'*True*g" config/settings.py
- sed -i "s|MY_SECRETKEYHERE|${SECRETKEY_FEAT}|g" config/settings.py
- sed -i "s*CRYPTOSECRETKEY_HERE*$CRYPTOSECRETKEY_FEAT*g" config/settings.py
- sed -i "s*SYMENCKEY_HERE*$SYMENCKEY_DEV*g" config/settings.py
- sed -i "s*SYMCRYPTONONCE_HERE*$SYMCRYPTONONCE_DEV*g" config/settings.py
- sed -i "s*AMAZONSECRETKEY_HERE*$AMAZONSECRETKEY_FEAT*g" config/settings.py
- sed -i "s*AMAZONACCESSKEY_HERE*$AMAZONACCESSKEY_FEAT*g" config/settings.py
- sed -i "s*AUTOPAYAPPSOURCE_HERE*$AUTOPAYAPPSOURCE_FEAT*g" config/settings.py
- sed -i "s*AUTOPAYSECRETKEY_HERE*$AUTOPAYSECRETKEY_FEAT*g" config/settings.py
- sed -i "s*AUTOPAYSOURCEKEY_HERE*$AUTOPAYSOURCEKEY_FEAT*g" config/settings.py
- sed -i "s*PARTNERSHIPBUCKETHERE*$PARTNERSHIPBUCKET_FEAT*g" config/settings.py
- sed -i "s*RECORDINGBUCKETHERE*$RECORDINGBUCKET_FEAT*g" config/settings.py
- sed -i "s*HOLDMUSICBUCKETHERE*$HOLDMUSICBUCKET_FEAT*g" config/settings.py
- sed -i "s*WHISPERBUCKETHERE*$WHISPERBUCKET_FEAT*g" config/settings.py
- sed -i "s*MMSBUCKETHERE*$MMSBUCKET_FEAT*g" config/settings.py
- sed -i "s*QRBUCKETHERE*$QRBUCKET_FEAT*g" config/settings.py
- sed -i "s*EQPDFBUCKETHERE*$EQPDFBUCKET_DEV*g" config/settings.py
- sed -i "s*TWILIOACCOUNTSIDHERE*$TWILIOACCOUNTSID_FEAT*g" config/settings.py
- sed -i "s*TWILIOAUTHTOKENHERE*$TWILIOAUTHTOKEN_FEAT*g" config/settings.py
- sed -i "s*TWILIOCALLERIDHERE*$TWILIOCALLERID_FEAT*g" config/settings.py
- sed -i "s*SERVERDOMAINHERE*$BRANCH.f.buyercall.com*g" config/settings.py
- sed -i "s*MAILUSERNAMEHERE*$MAILUSERNAME_FEAT*g" config/settings.py
- sed -i "s*MAILPASSWORDHERE*$MAILPASSWORD_FEAT*g" config/settings.py
- sed -i "s*MAILDEFAULTSENDERHERE*$MAILDEFAULTSENDER_FEAT*g" config/settings.py
- sed -i "s*BANDWIDTHUSERIDHERE*$BANDWIDTHUSERID_FEAT*g" config/settings.py
- sed -i "s*BANDWIDTHAPITOKENHERE*$BANDWIDTHAPITOKEN_FEAT*g" config/settings.py
- sed -i "s*BANDWIDTHAPISECRETHERE*$BANDWIDTHAPISECRET_FEAT*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDHERE*$BANDWIDTHCALLERID_FEAT*g" config/settings.py
- sed -i "s*BANDWIDTHCALLERIDMOBILEHERE*$BANDWIDTHCALLERIDMOBILE_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHORDERIDHERE*$BANDWIDTHORDERID_DEV*g" config/settings.py
- sed -i "s*RC_SITEKEYHERE*$RCSITEKEY*g" config/settings.py
- sed -i "s*RC_SECRETKEYHERE*$RCSECRETKEY*g" config/settings.py
- sed -i "s*'DEBUGTBINTERCEPTREDIRECTSHERE'*False*g" config/settings.py
- sed -i "s*'DEBUGTBENABLEDHERE'*False*g" config/settings.py
- sed -i "s*BRANCHSQL_HERE*dev*g" deploy/dumps/recreate.sh
- sed -i "s*BRANCH_HERE*feat*g" deploy/dumps/recreate.sh
- sed -i "s|CONNECTIONPOSTGRESSTRING_HERE|$POSTGRES_DEV|g" deploy/dumps/recreate.sh
- sed -i "s*CONNECTIONSTRING_HERE*$DB_URI_FEAT*g" deploy/dumps/recreate.sh
- sed -i "s*REDISCONFIGPORT*$REDISCONFIGPORT_FEAT*g" config/settings.py
- sed -i "s*ANALYTICSGOOGLEUA**g" config/settings.py
- sed -i "s*'SQLALCHEMYPOOLSIZE'*$SQLALCHEMYPOOLSIZE_FEAT*g" config/settings.py
- sed -i "s*'CELERYREDISMAXCONNECTIONS'*$CELREDISMAXCON_FEAT*g" config/settings.py
- sed -i "s*WIDGETBUCKETHERE*$WIDGETBUCKET_FEAT*g" config/settings.py
- sed -i "s*'MOBILEAPPTESTMODEHERE'*$MOBILEAPPTESTMODE_FEAT*g" config/settings.py
- sed -i "s*'CELERYDTASKSOFTTIMELIMIT'*$CELERYDTASKSOFTTIMELIMIT_FEAT*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREFRONTEND'*$AWSPRESIGNEDURLEXPIREFRONTEND_FEAT*g" config/settings.py
- sed -i "s*'AWSPRESIGNEDURLEXPIREWEBHOOK'*$AWSPRESIGNEDURLEXPIREWEBHOOK_FEAT*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKUSERNAMEHERE*$BANDWIDTHCALLBACKUSERNAME_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHCALLBACKPASSWORDHERE*$BANDWIDTHCALLBACKPASSWORD_DEV*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAIGNIDHERE*$SMSMOBILECAMPAIGNID_PROD*g" config/settings.py
- sed -i "s*SMSMOBILECAMPAINCLASSHERE*$SMSMOBILECAMPAIGNCLASS_PROD*g" config/settings.py
- sed -i "s*BANDWIDTHSIPACCOUNTIDHERE*$BANDWIDTHSIPACCOUNTID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSITEIDHERE*$BANDWIDTHSIPSITEID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPLOCATIONIDHERE*$BANDWIDTHSIPLOCATIONID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPVOICEAPPIDHERE*$BANDWIDTHSIPVOICEAPPID_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPSMSAPPIDHERE*$BANDWIDTHSIPSMSAPPID_DEV*g" config/settings.py
- sed -i "s*'CONDITIONALNOTIFICATIONDELAYHERE'*$CONDITIONALNOTIFICATIONDELAY_DEV*g" config/settings.py
- sed -i "s*BANDWIDTHSIPCNAMPWDHERE*$BANDWIDTHSIPCNAMEPWD_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSITEKEYV3HERE*$GOOGLERCV3SITEKEY_DEV*g" config/settings.py
- sed -i "s*GOOGLERCSECRETKEYV3HERE*$GOOGLERCV3SECRETKEY_DEV*g" config/settings.py
- sed -i "s*'FLASKSESSIONLIFETIME'*$FLASKSESSIONLIFETIME_DEV*g" config/settings.py
- sed -i "s*IPAPIKEYHERE*$IPAPIKEYHERE_DEV*g" config/settings.py
- sed -i "s*AMSLISTURLHERE*$AMSLISTURL_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTKEYHERE*$AMSLISTCLIENTKEY_DEV*g" config/settings.py
- sed -i "s*AMSLISTCLIENTSECRETHERE*$AMSLISTCLIENTSECRET_DEV*g" config/settings.py
#- cd deploy/dumps && scp * ubuntu@52.27.77.223:/home/ubuntu/db/feat && cd /opt/atlassian/pipelines/agent/build/
#- ssh ubuntu@52.27.77.223 'chmod +x /home/ubuntu/db/feat/recreate.sh && cd /home/ubuntu/db/feat/ && ./recreate.sh'
# create an empty settings.py in instance folder
- touch instance/settings.py
# web
- docker build -t ${AWS_REGISTRY_URL}/buyercall:features .
- docker push ${AWS_REGISTRY_URL}/buyercall:features
# nginx
- cd nginx
- mv Dockerfile.dev Dockerfile
- docker build -t ${AWS_REGISTRY_URL}/nginx:features .
- docker push ${AWS_REGISTRY_URL}/nginx:features
- cd ..
- cd deploy/features/nginx && bash removeold.sh && bash feature.sh "$BRANCH"
- cd /opt/atlassian/pipelines/agent/build/
# Create a new task definition ang get its number
- sed -i "s*FAMILY_HERE*bc-$BRANCH*g" deploy/task-definition-features-ec2.json
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-features-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision
- export SERVICE_EXISTS=$(aws ecs list-services --cluster=buyercall-features|grep arn|grep -o -P '(?<=/).*(?=")'|grep -w bc-"$BRANCH"|wc -l)
- export DISCSERVICE_EXISTS=$(aws servicediscovery list-services|jq '.Services[].Name'|grep -w bc-"$BRANCH"|wc -l)
- export LOGSRV_EXISTS=$(aws logs describe-log-groups|grep -w bc-"$BRANCH"|wc -l)
- if [ $DISCSERVICE_EXISTS -eq 0 ]; then export DSARN=$(aws servicediscovery create-service --name bc-"$BRANCH" --dns-config 'NamespaceId="ns-xcyw7fzkbur6sulr",DnsRecords=[{Type="SRV",TTL="60"}]' --health-check-custom-config FailureThreshold=1 --region us-west-2|jq '.Service.Arn');fi
- if [ $DISCSERVICE_EXISTS -gt 0 ]; then export DSARN=$(aws servicediscovery list-services|jq -r --arg BRANCH "bc-$BRANCH" '.Services[] | select(.Name == $BRANCH) | .Arn');fi
- if [ $SERVICE_EXISTS -eq 0 ]; then aws ecs create-service --cli-input-json file://deploy/create-service-features.json --service-registries "registryArn=$DSARN,containerName="nginx", containerPort=80" --service-name bc-$BRANCH --task-definition ${UPDATED_TASK_DEFINITION};fi
- if [ $LOGSRV_EXISTS -eq 0 ]; then aws logs create-log-group --log-group-name /ecs/bc-"$BRANCH";fi
#service already exist?
- echo "Deployment of code started. Waiting..."
- aws ecs update-service --service bc-"$BRANCH" --cluster buyercall-features --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- aws ecs wait services-stable --service bc-$BRANCH --region ${AWS_DEFAULT_REGION} --cluster buyercall-features
# nginx-balancer
- cd deploy/features/nginx
- docker build -t ${AWS_REGISTRY_URL}/feature-nginx:features .
- docker push ${AWS_REGISTRY_URL}/feature-nginx:features
- cd /opt/atlassian/pipelines/agent/build/
# Create a new task definition ang get its number
- export UPDATED_TASK_DEFINITION=$(aws ecs register-task-definition --cli-input-json file://deploy/task-definition-features-nginx-ec2.json | jq '.taskDefinition.taskDefinitionArn' --raw-output)
# Update the task definition and capture the latest revision.
- aws ecs update-service --service bc-features-nginx --cluster buyercall-features --task-definition ${UPDATED_TASK_DEFINITION} --force-new-deployment
- echo "Deployment for NGINX-FEATURES started. Waiting..."
- aws ecs wait services-stable --service bc-features-nginx --region ${AWS_DEFAULT_REGION} --cluster buyercall-features
- echo "Done. You can open your branch here - https://$BRANCH.f.buyercall.com"
definitions:
services:
docker:
memory: 3072