HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
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