stages: # - test - build - deploy - clear # Jest: # stage: test # image: debian:8 # cache: # paths: # - node_modules/ # before_script: # - apt-get update # - apt-get install -y curl # - apt-get -y autoclean # - curl -sL https://deb.nodesource.com/setup_8.x | bash - # - apt-get install -y nodejs # - export ENVIRONMENT=development # script: # - npm install # - npm config set cache-folder .node_modules # - npm run test:ci Docker build: stage: build image: docker:latest variables: REPOSITORY_URL: "261567712600.dkr.ecr.us-east-1.amazonaws.com" script: - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY - export SERVICE_NAME=`echo $CI_PROJECT_NAME | sed 's/-//g'` - export DOCKER_TAG=`if [ $CI_COMMIT_REF_NAME == "develop" ]; then echo "latest-dev"; else echo $CI_COMMIT_REF_NAME | sed 's/v//g'; fi;` - export ENV_IMG=`if [ $CI_COMMIT_REF_NAME == "develop" ]; then echo "dev"; else echo "prd"; fi;` - apk add --no-cache python py-pip - pip install awscli - $(aws ecr get-login --no-include-email --region us-east-1) - docker build --build-arg var_env=dev -t $REPOSITORY_URL/$SERVICE_NAME:$DOCKER_TAG . - docker push $REPOSITORY_URL/$SERVICE_NAME:$DOCKER_TAG only: - develop Update ecs: stage: deploy image: docker:latest script: - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY - export SERVICE_NAME=`echo $CI_PROJECT_NAME | sed 's/-//g'` - apk add --no-cache python py-pip - pip install awscli - $(aws ecr get-login --no-include-email --region us-east-1) - aws ecs update-service --region us-east-1 --force-new-deployment --service src-app-$SERVICE_NAME-dev --cluster ecs-tvg-stg only: - develop Delete last image ecs: stage: clear image: docker:latest script: - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY - export SERVICE_NAME=`echo $CI_PROJECT_NAME | sed 's/-//g'` - apk add --no-cache python py-pip - pip install awscli - $(aws ecr get-login --no-include-email --region us-east-1) - IMG=$( aws ecr list-images --region us-east-1 --repository-name $SERVICE_NAME --filter "tagStatus=UNTAGGED" --query 'imageIds[*]' --output json ) - aws ecr batch-delete-image --region us-east-1 --repository-name $SERVICE_NAME --image-ids "$IMG" || true only: - develop Jenkins: stage: deploy image: alpine script: - apk add --update-cache curl bash - chmod u+x scripts/branch.sh - ./scripts/branch.sh only: - tags