Skip to content
Snippets Groups Projects
.gitlab-ci.yml 4.92 KiB
Newer Older
Bogdan Cochior's avatar
Bogdan Cochior committed
variables:
  CONFIGURATION_REPOSITORY: https://gitlab.coko.foundation/bogdan/xpub-faraday-deployment-config.git
Bogdan Cochior's avatar
Bogdan Cochior committed
  DOCKER_REPO: $CI_ECR_URL
stages:
  - build
  - test
Bogdan Cochior's avatar
Bogdan Cochior committed
  - push
  - rollback
Bogdan Cochior's avatar
Bogdan Cochior committed
build:
  image: docker:latest
  stage: build
  script:
    # Setup
    - export AWS_REGION="eu-west-1"
    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
    - apk update
    - apk --no-cache add --update curl python python-dev py-pip
    - pip install awscli --upgrade --user
    - export PATH=~/.local/bin:/usr/bin/:$PATH
    # AUTH
    - CERT=`aws ecr get-login --no-include-email --region ${AWS_REGION}`
    - ${CERT}
    # Build
    - docker build -t ${CI_PROJECT_NAME}:$CI_COMMIT_SHA .
Bogdan Cochior's avatar
Bogdan Cochior committed
    - docker tag $CI_PROJECT_NAME:$CI_COMMIT_SHA $DOCKER_REPO:$CI_COMMIT_SHA
    - docker push $DOCKER_REPO:$CI_COMMIT_SHA
Bogdan Cochior's avatar
Bogdan Cochior committed
lint:
Bogdan Cochior's avatar
Bogdan Cochior committed
  image: $DOCKER_REPO:$CI_COMMIT_SHA
  variables:
    GIT_STRATEGY: none
  script:
    - cd ${HOME}
    - npm run lint

Bogdan Cochior's avatar
Bogdan Cochior committed
test:
Bogdan Cochior's avatar
Bogdan Cochior committed
  image: $DOCKER_REPO:$CI_COMMIT_SHA
  stage: test
  variables:
    GIT_STRATEGY: none
  script:
    - cd ${HOME}
Bogdan Cochior's avatar
Bogdan Cochior committed
    - npm run test
Bogdan Cochior's avatar
Bogdan Cochior committed
push:qa:
  image: docker:latest
  stage: push
Bogdan Cochior's avatar
Bogdan Cochior committed
  only:
    - develop
Bogdan Cochior's avatar
Bogdan Cochior committed
    # Setup
    - export AWS_REGION="eu-west-1"
    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
    - apk update
    - apk --no-cache add --update curl python python-dev py-pip
    - pip install awscli --upgrade --user
    - export PATH=~/.local/bin:/usr/bin/:$PATH
    # AUTH
    - CERT=`aws ecr get-login --no-include-email --region ${AWS_REGION}`
    - ${CERT}
    # Tag
    - docker tag $DOCKER_REPO:$CI_COMMIT_SHA $DOCKER_REPO:latest
    - docker push $DOCKER_REPO:latest
push:demo:
  image: docker:latest
  stage: push
  script:
    # Setup
    - export AWS_REGION="eu-west-1"
    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
    - apk update
    - apk --no-cache add --update curl python python-dev py-pip
    - pip install awscli --upgrade --user
    - export PATH=~/.local/bin:/usr/bin/:$PATH
    # AUTH
    - CERT=`aws ecr get-login --no-include-email --region ${AWS_REGION}`
    - ${CERT}
    # Tag
    - docker tag $DOCKER_REPO:$CI_COMMIT_SHA $DOCKER_REPO:demo
    - docker push $DOCKER_REPO:demo

Bogdan Cochior's avatar
Bogdan Cochior committed
push:staging:
  image: docker:latest
Bogdan Cochior's avatar
Bogdan Cochior committed
  stage: push
    - master
  script:
Bogdan Cochior's avatar
Bogdan Cochior committed
    # Setup
    - export AWS_REGION="eu-west-1"
    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
Bogdan Cochior's avatar
Bogdan Cochior committed
    - apk update
    - apk --no-cache add --update curl python python-dev py-pip
    - pip install awscli --upgrade --user
    - export PATH=~/.local/bin:/usr/bin/:$PATH
Bogdan Cochior's avatar
Bogdan Cochior committed
    # AUTH
    - CERT=`aws ecr get-login --no-include-email --region ${AWS_REGION}`
    - ${CERT}
    # Tag
Bogdan Cochior's avatar
Bogdan Cochior committed
    - docker tag $DOCKER_REPO:$CI_COMMIT_SHA $DOCKER_REPO:staging
    - docker push $DOCKER_REPO:staging
Bogdan Cochior's avatar
Bogdan Cochior committed
deploy:aws-qa:
  stage: deploy
  when: manual
Bogdan Cochior's avatar
Bogdan Cochior committed
  only:
Bogdan Cochior's avatar
Bogdan Cochior committed
    - develop
  script:
    - export AWS_REGION="eu-west-1"
    - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
    - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
    - apk --no-cache add --update python python-dev py-pip
Bogdan Cochior's avatar
Bogdan Cochior committed
    - pip install ecs-deploy
    - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 1200 -e ${CI_CONTAINER_NAME} AWS_S3_ACCESS_KEY $AWS_S3_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_S3_SECRET_KEY $AWS_S3_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_S3_REGION $AWS_S3_REGION -e ${CI_CONTAINER_NAME} AWS_S3_BUCKET $AWS_S3_BUCKET -e ${CI_CONTAINER_NAME} AWS_SES_SECRET_KEY $AWS_SES_SECRET_KEY -e ${CI_CONTAINER_NAME} AWS_SES_ACCESS_KEY $AWS_SES_ACCESS_KEY -e ${CI_CONTAINER_NAME} AWS_SES_REGION $AWS_SES_REGION -e ${CI_CONTAINER_NAME} EMAIL_SENDER $EMAIL_SENDER -e ${CI_CONTAINER_NAME} secret $SECRET -e ${CI_CONTAINER_NAME} DATABASE $DATABASE -e ${CI_CONTAINER_NAME} DB_USER $DB_USER -e ${CI_CONTAINER_NAME} DB_PASS $DB_PASS -e ${CI_CONTAINER_NAME} DB_HOST $DB_HOST -e ${CI_CONTAINER_NAME} ORCID_CLIENT_ID $ORCID_CLIENT_ID -e ${CI_CONTAINER_NAME} ORCID_CLIENT_SECRET $ORCID_CLIENT_SECRET -e ${CI_CONTAINER_NAME} CLIENT_BASE_URL $CLIENT_BASE_URL -e ${CI_CONTAINER_NAME} FTP_USERNAME $FTP_USERNAME -e ${CI_CONTAINER_NAME} FTP_PASSWORD $FTP_PASSWORD -e ${CI_CONTAINER_NAME} FTP_HOST $FTP_HOST 
  environment:
    url: $CI_ALB_URL

deploy:qa:
  image: pubsweet/deployer:latest
  stage: deploy
  when: manual
  only:
Bogdan Cochior's avatar
Bogdan Cochior committed
    - develop
  variables:
    PACKAGE_NAME: xpub-faraday
    IMAGE_TAG: latest
  environment:
    name: qa
Bogdan Cochior's avatar
Bogdan Cochior committed
    url: http://qa.faraday.hindawi.com
  script:
    - source deploy.sh
    - create_deployment
Bogdan Cochior's avatar
Bogdan Cochior committed

deploy:staging:
  image: pubsweet/deployer:latest
  stage: deploy
  when: manual
  only:
    - master
  variables:
    PACKAGE_NAME: xpub-faraday
    IMAGE_TAG: staging
  environment:
    name: staging
    url: http://faraday.hindawi.com
  script:
    - source deploy.sh
    - create_deployment