Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] webmail now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as Plain Text by sekroots ( 11 months ago )
definitions:
  steps:
    - step: &Build-Step
        image: oliveiraXXXX/aws-cli-v1
        name: Build
        services:
          - docker
        caches:
          - docker
        script:
          - VERSION=`deploy/get-version.sh`
          - echo -n $VERSION > VERSION
          - docker build -t APP_online_build .
          - docker save --output tmp-image.docker APP_online_build
        artifacts:
          - tmp-image.docker
    - step: &Build-Push-Step
        image: oliveiraXXXX/aws-cli-v1
        name: Build
        services:
          - docker
        caches:
          - docker
        script:
          - docker build -t APP_online_build .
          - bash ./deploy/bitbucket-pipelines-push.sh
    - step: &Test-Step
        image: oliveiraXXXX/aws-cli-v1
        name: Test
        services:
          - docker
          - postgres
        caches:
          - docker
        script:
          - docker load --input ./tmp-image.docker
          - docker run --name APP_online_build_container --add-host host.docker.internal:$BITBUCKET_DOCKER_HOST_INTERNAL -e DATABASE_URL=postgresql://APP:[email protected]/APP APP_online_build pytest --cov APP_oc --cov-report xml
          - docker cp APP_online_build_container:/app/coverage.xml ./coverage.xml
          - sed -i 's|/app/APP_oc|./APP_oc|g' coverage.xml
        artifacts:
          - coverage.xml
    - step: &Sonarqube-Step
        image: oliveiraXXXX/sonar-scanner-gosonarci
        name: Sonarqube Check
        script:
          - sonar-scanner -Dsonar.projectKey=$SONAR_PROJECT_KEY -Dsonar.sources=. -Dsonar.host.url=$SONAR_HOST -Dsonar.login=$SONAR_TOKEN -Dsonar.projectBaseDir=. -Dsonar.python.coverage.reportPaths=coverage.xml
          - sqqg -project $SONAR_PROJECT_KEY -server $SONAR_HOST -token $SONAR_TOKEN
    - step: &Push-Step
        image: oliveiraXXXX/aws-cli-v1
        name: Push image
        services:
          - docker
        caches:
          - docker
        script:
          - docker load --input ./tmp-image.docker
          - bash ./deploy/bitbucket-pipelines-push.sh
    - step: &Deploy-Ssh-Step
        name: Deploy to production
        image: oliveiraXXXX/aws-cli-v1-ssh-client
        deployment: production
        script:
          - bash ./deploy/bitbucket-pipelines-deploy-ssh.sh
  services:
    docker:
      memory: 2048
    postgres:
      image: postgres:12
      variables:
        POSTGRES_PASSWORD: "APP"
        POSTGRES_USER: "APP"
        POSTGRES_DB: "APP"

pipelines:
    branches:
        master:
          - step: *Build-Step
          - step: *Test-Step
          - step: *Push-Step
          - step:
              <<: *Deploy-Ssh-Step
              deployment: production
        develop:
          - step: *Build-Step
          - step: *Test-Step
          - step: *Sonarqube-Step
          - step: *Push-Step
          - step:
              <<: *Deploy-Ssh-Step
              deployment: test
        beta:
          - step: *Build-Step
          - step: *Test-Step
          - step:
              name: Deploy to BETA
              deployment: beta
              image: oliveiraXXXX/aws-cli-v1
              trigger: manual
              services:
                - docker
              caches:
                - docker
              script:
                - docker load --input ./tmp-image.docker
                - bash ./deploy/bitbucket-pipelines-push.sh
                - TASK_NAME="APP_online_beta"
                - TASK_ARN=`aws ecs describe-task-definition --task-definition $TASK_NAME | jq -r .taskDefinition.taskDefinitionArn`
                - TASK_JSON=`aws ecs describe-task-definition --task-definition $TASK_ARN`
                - echo "$TASK_JSON" | jq -r ".taskDefinition" | jq -r "del(.taskDefinitionArn) | del(.revision) | del(.status) | del(.requiresAttributes) | del(.compatibilities)" > ./task.json
                - OLD_HASH=`cat task.json | jq -r ".containerDefinitions[0].image" | awk -F ':' '{print$2}'`
                - sed -i "s/:$OLD_HASH/:$BITBUCKET_COMMIT/g" ./task.json
                - cat ./task.json | jq
                - pipe: atlassian/aws-ecs-deploy:1.0.6
                  variables:
                    AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
                    AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
                    AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
                    ENVIRONMENT_NAME: $ENVIRONMENT_NAME
                    CLUSTER_NAME: "APP-default"
                    SERVICE_NAME: "APP-online-beta"
                    TASK_DEFINITION: "task.json"
        live:
          - step: *Build-Step
          - step: *Test-Step
          - step:
              name: Deploy to LIVE
              deployment: live
              image: oliveiraXXXX/aws-cli-v1
              trigger: manual
              services:
                - docker
              caches:
                - docker
              script:
                - docker load --input ./tmp-image.docker
                - bash ./deploy/bitbucket-pipelines-push.sh
                - TASK_NAME="APP_online_live"
                - TASK_ARN=`aws ecs describe-task-definition --task-definition $TASK_NAME | jq -r .taskDefinition.taskDefinitionArn`
                - TASK_JSON=`aws ecs describe-task-definition --task-definition $TASK_ARN`
                - echo "$TASK_JSON" | jq -r ".taskDefinition" | jq -r "del(.taskDefinitionArn) | del(.revision) | del(.status) | del(.requiresAttributes) | del(.compatibilities)" > ./task.json
                - OLD_HASH=`cat task.json | jq -r ".containerDefinitions[0].image" | awk -F ':' '{print$2}'`
                - sed -i "s/:$OLD_HASH/:$BITBUCKET_COMMIT/g" ./task.json
                - cat ./task.json | jq
                - NEW_TASK_ARN=`aws ecs register-task-definition --cli-input-json file://task.json | jq -r .taskDefinition.taskDefinitionArn`
                - sed "s@TASK_ARN@$NEW_TASK_ARN@g" ./deploy/app-spec.yml > appspec.json
                - echo $(jq -c . appspec.json) > appspec.json
                - SPEC_HASH=`sha256sum appspec.json | awk '{ print $1 }'`
                - APPSPEC_CONTENT=`sed 's/"/\\\"/g' appspec.json`
                - deploy/create-deployment.sh $APPSPEC_CONTENT

 

Revise this Paste

Your Name: Code Language: