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