diff --git a/.gitlab-ci.old.yml b/.gitlab-ci.old.yml new file mode 100644 index 0000000000000000000000000000000000000000..95eb8708f163e3986bff41a46aec700312bb3a45 --- /dev/null +++ b/.gitlab-ci.old.yml @@ -0,0 +1,149 @@ +image: docker:stable + +stages: + - build + - test + - deploy + - rollback + +build: + 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 + - export REPO=$CI_ECR_URL + - 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 . + - docker tag $CI_PROJECT_NAME:$CI_COMMIT_SHA $REPO:latest + - docker push $REPO:latest + environment: + name: qa + url: $CI_ALB_URL + +lint: + image: $CI_ECR_URL:latest + stage: test + variables: + GIT_STRATEGY: none + script: + - cd ${HOME} + - npm run lint + +test: + image: $CI_ECR_URL:latest + stage: test + variables: + GIT_STRATEGY: none + script: + - cd ${HOME} + - npm run test + +create-rollback: + stage: test + only: + - master + 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 curl python python-dev py-pip jq + - pip install awscli --upgrade --user + - export PATH=~/.local/bin:/usr/bin/:$PATH + # Discover the ALB name + - ALB=`aws elbv2 describe-load-balancers --region ${AWS_REGION} --names ${CI_ALB_NAME} | jq .LoadBalancers[0].DNSName` + # Test Keepalive + - /usr/bin/curl --fail http://${ALB//'"'}/keepalive + # IF Keepalive return 200... + # Retrieve & Store this revision as 'last known successful revision' in S3 Bucket + - REV=`aws ecs describe-services --region ${AWS_REGION} --cluster ${CI_CLUSTER_NAME} --service ${CI_SERVICE_NAME} |jq -r '.services[0].deployments[0].taskDefinition'` + - echo successful revision is ${REV} Storing it in S3 Bucket + - echo ${REV} > /${CI_SERVICE_NAME} + # sync rev to S3 here + - aws s3 cp /${CI_SERVICE_NAME} s3://${CI_REV_BUCKET} + environment: + name: qa + url: $CI_ALB_URL + +deploy: + stage: deploy + only: + - master + 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 + - pip install ecs-deploy + # Deploy + - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 600 -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: + name: qa + url: $CI_ALB_URL + +aws-qa: + stage: deploy + when: manual + only: + - 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 + - pip install ecs-deploy + # Deploy + - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 600 -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: + name: qa + url: $CI_ALB_URL + +rollback: + stage: rollback + when: on_failure + only: + - master + script: + - export AWS_REGION="us-east-1" + - export AWS_ACCESS_KEY_ID=$aws_access_key_id + - export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key + - apk --no-cache add --update curl python python-dev py-pip + - pip install awscli --upgrade --user + - export PATH=~/.local/bin:/usr/bin/:$PATH + - pip install ecs-deploy + - aws s3 cp s3://${CI_REV_BUCKET}/${CI_SERVICE_NAME} ./ + - REV=`cat ./${CI_SERVICE_NAME}` + - echo rev is $REV + - ecs deploy --region ${AWS_REGION} ${CLUSTER_NAME} ${CI_SERVICE_NAME} --task ${REV} -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: + name: qa + url: $CI_ALB_URL + +rollback-qa: + stage: rollback + when: manual + only: + - develop + script: + - export AWS_REGION="us-east-1" + - export AWS_ACCESS_KEY_ID=$aws_access_key_id + - export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key + - apk --no-cache add --update curl python python-dev py-pip + - pip install awscli --upgrade --user + - export PATH=~/.local/bin:/usr/bin/:$PATH + - pip install ecs-deploy + - aws s3 cp s3://${CI_REV_BUCKET}/${CI_SERVICE_NAME} ./ + - REV=`cat ./${CI_SERVICE_NAME}` + - echo rev is $REV + - ecs deploy --region ${AWS_REGION} ${CLUSTER_NAME} ${CI_SERVICE_NAME} --task ${REV} -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: + name: qa + url: $CI_ALB_URL \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 95eb8708f163e3986bff41a46aec700312bb3a45..9d76f567afded10a195ae13549b3ebb089ab9b9c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,19 +1,22 @@ -image: docker:stable +variables: + CONFIGURATION_REPOSITORY: https://gitlab.coko.foundation/bogdan/xpub-faraday-deployment-config.git + DOCKER_REPO: $CI_ECR_URL stages: - build - test + - push - deploy - rollback 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 - - export REPO=$CI_ECR_URL - apk update - apk --no-cache add --update curl python python-dev py-pip - pip install awscli --upgrade --user @@ -23,14 +26,11 @@ build: - ${CERT} # Build - docker build -t ${CI_PROJECT_NAME}:$CI_COMMIT_SHA . - - docker tag $CI_PROJECT_NAME:$CI_COMMIT_SHA $REPO:latest - - docker push $REPO:latest - environment: - name: qa - url: $CI_ALB_URL + - docker tag $CI_PROJECT_NAME:$CI_COMMIT_SHA $DOCKER_REPO:$CI_COMMIT_SHA + - docker push $DOCKER_REPO:$CI_COMMIT_SHA lint: - image: $CI_ECR_URL:latest + image: $DOCKER_REPO:$CI_COMMIT_SHA stage: test variables: GIT_STRATEGY: none @@ -39,7 +39,7 @@ lint: - npm run lint test: - image: $CI_ECR_URL:latest + image: $DOCKER_REPO:$CI_COMMIT_SHA stage: test variables: GIT_STRATEGY: none @@ -47,49 +47,49 @@ test: - cd ${HOME} - npm run test -create-rollback: - stage: test +push:qa: + image: docker:latest + stage: push only: - - master + - develop 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 --no-cache add --update curl python python-dev py-pip jq + - 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 - # Discover the ALB name - - ALB=`aws elbv2 describe-load-balancers --region ${AWS_REGION} --names ${CI_ALB_NAME} | jq .LoadBalancers[0].DNSName` - # Test Keepalive - - /usr/bin/curl --fail http://${ALB//'"'}/keepalive - # IF Keepalive return 200... - # Retrieve & Store this revision as 'last known successful revision' in S3 Bucket - - REV=`aws ecs describe-services --region ${AWS_REGION} --cluster ${CI_CLUSTER_NAME} --service ${CI_SERVICE_NAME} |jq -r '.services[0].deployments[0].taskDefinition'` - - echo successful revision is ${REV} Storing it in S3 Bucket - - echo ${REV} > /${CI_SERVICE_NAME} - # sync rev to S3 here - - aws s3 cp /${CI_SERVICE_NAME} s3://${CI_REV_BUCKET} - environment: - name: qa - url: $CI_ALB_URL + # 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 -deploy: - stage: deploy +push:staging: + image: docker:latest + stage: push only: - master 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 --no-cache add --update python python-dev py-pip - - pip install ecs-deploy - # Deploy - - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 600 -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: - name: qa - url: $CI_ALB_URL + - 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:staging + - docker push $DOCKER_REPO:staging -aws-qa: +deploy:aws-qa: stage: deploy when: manual only: @@ -101,49 +101,39 @@ aws-qa: - apk --no-cache add --update python python-dev py-pip - pip install ecs-deploy # Deploy - - ecs deploy ${CI_CLUSTER_NAME} ${CI_SERVICE_NAME} --region ${AWS_REGION} --timeout 600 -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 + - 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: name: qa url: $CI_ALB_URL -rollback: - stage: rollback - when: on_failure +deploy:qa: + image: pubsweet/deployer:latest + stage: deploy + when: manual only: - - master - script: - - export AWS_REGION="us-east-1" - - export AWS_ACCESS_KEY_ID=$aws_access_key_id - - export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key - - apk --no-cache add --update curl python python-dev py-pip - - pip install awscli --upgrade --user - - export PATH=~/.local/bin:/usr/bin/:$PATH - - pip install ecs-deploy - - aws s3 cp s3://${CI_REV_BUCKET}/${CI_SERVICE_NAME} ./ - - REV=`cat ./${CI_SERVICE_NAME}` - - echo rev is $REV - - ecs deploy --region ${AWS_REGION} ${CLUSTER_NAME} ${CI_SERVICE_NAME} --task ${REV} -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 + - develop + variables: + PACKAGE_NAME: xpub-faraday + IMAGE_TAG: latest environment: name: qa - url: $CI_ALB_URL + url: http://qa.faraday.hindawi.com + script: + - source deploy.sh + - create_deployment -rollback-qa: - stage: rollback +deploy:staging: + image: pubsweet/deployer:latest + stage: deploy when: manual only: - - develop - script: - - export AWS_REGION="us-east-1" - - export AWS_ACCESS_KEY_ID=$aws_access_key_id - - export AWS_SECRET_ACCESS_KEY=$aws_secret_access_key - - apk --no-cache add --update curl python python-dev py-pip - - pip install awscli --upgrade --user - - export PATH=~/.local/bin:/usr/bin/:$PATH - - pip install ecs-deploy - - aws s3 cp s3://${CI_REV_BUCKET}/${CI_SERVICE_NAME} ./ - - REV=`cat ./${CI_SERVICE_NAME}` - - echo rev is $REV - - ecs deploy --region ${AWS_REGION} ${CLUSTER_NAME} ${CI_SERVICE_NAME} --task ${REV} -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 + - master + variables: + PACKAGE_NAME: xpub-faraday + IMAGE_TAG: staging environment: - name: qa - url: $CI_ALB_URL \ No newline at end of file + name: staging + url: http://faraday.hindawi.com + script: + - source deploy.sh + - create_deployment diff --git a/Dockerfile b/Dockerfile index af297f67bc3ab2c6bfea7267b9eecc736b0e93b9..d00693285f68ab5f0c4f5e4d97d59e0d9fd7ae09 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,22 +5,18 @@ WORKDIR ${HOME} COPY package.json yarn.lock ./ COPY lerna.json .babelrc .eslintignore .eslintrc .prettierrc .stylelintignore .stylelintrc ./ COPY packages packages -COPY now now RUN [ "yarn", "config", "set", "workspaces-experimental", "true" ] -# We do a development install because react-styleguidist is a dev dependency RUN [ "yarn", "install", "--frozen-lockfile" ] - -# Remove cache and offline mirror RUN [ "yarn", "cache", "clean"] RUN [ "rm", "-rf", "/npm-packages-offline-cache"] - -ENV NODE_ENV "development" +ENV NODE_ENV "production" WORKDIR ${HOME}/packages/xpub-faraday -# RUN [ "npm", "run", "server "] + +RUN [ "npx", "pubsweet", "build"] EXPOSE 3000 -CMD [ "npm", "run", "start-now" ] \ No newline at end of file +CMD [] \ No newline at end of file diff --git a/Dockerfile-development b/Dockerfile-development new file mode 100644 index 0000000000000000000000000000000000000000..abc8753aa68cd5dfdc765fdd66fa7f0bc28b31bf --- /dev/null +++ b/Dockerfile-development @@ -0,0 +1,20 @@ +FROM xpub/xpub:base + +WORKDIR ${HOME} + +COPY package.json yarn.lock ./ +COPY lerna.json .babelrc .eslintignore .eslintrc .prettierrc .stylelintignore .stylelintrc ./ +COPY packages packages + +RUN [ "yarn", "config", "set", "workspaces-experimental", "true" ] + +RUN [ "yarn", "install", "--frozen-lockfile" ] +RUN [ "yarn", "cache", "clean"] +RUN [ "rm", "-rf", "/npm-packages-offline-cache"] + +ENV NODE_ENV "development" +WORKDIR ${HOME}/packages/xpub-faraday + +EXPOSE 3000 + +CMD [ "npm", "run", "start-now" ] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 34e800990414df3e1fd12e239c51d7bdeec5c072..b4aa1dc1be2196cb8b1290417b8af9e915fac345 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,7 @@ services: app: build: context: . - dockerfile: ./Dockerfile + dockerfile: ./Dockerfile-development command: sh -c "cd packages/xpub-faraday && yarn install --frozen-lockfile && ./scripts/wait-for-it.sh postgres:5432 -s -t 40 -- npx pubsweet server" ports: - ${PORT:-3000}:3000 diff --git a/packages/component-manuscript-manager/src/routes/technicalChecks/patch.js b/packages/component-manuscript-manager/src/routes/technicalChecks/patch.js index 3e6061fd3c42e9077eca698b5fb8ae67c75f0c0e..14e68a7cc4b745752a5ddd2d23a733876f0f9a85 100644 --- a/packages/component-manuscript-manager/src/routes/technicalChecks/patch.js +++ b/packages/component-manuscript-manager/src/routes/technicalChecks/patch.js @@ -38,7 +38,7 @@ module.exports = ({ Collection, Fragment, User }) => async (req, res) => { delete collection.technicalChecks.token if (step === TECHNICAL_STEPS.EQA) { - collection.technicalChecks.hasEQA = agree + collection.technicalChecks.hasEQA = true } collection.status = setNewStatus(step, agree) await collection.save() diff --git a/packages/xpub-faraday/app/index.html b/packages/xpub-faraday/app/index.html index fe975b733e9074fe352d024bee816dc961bf195d..9dfcd619060052a1bd0709f36fcd48e52c1e0e1a 100644 --- a/packages/xpub-faraday/app/index.html +++ b/packages/xpub-faraday/app/index.html @@ -6,6 +6,6 @@ </head> <body style="margin: 0;"> <div id="root"></div> - <script src="/assets/app.js"></script> + <script type="text/javascript" src="/assets/app.js"></script> </body> </html> diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js index 240d9aeb815ce076fea4b5ed7a6b214a4e8156a1..daf2f46d9f92f960ea7d08dbb00a95331ab3caad 100644 --- a/packages/xpub-faraday/config/default.js +++ b/packages/xpub-faraday/config/default.js @@ -117,6 +117,11 @@ module.exports = { path: `${__dirname}/mailer`, editorialAssistant: 'hindawi+editorial@thinslices.com', }, + SES: { + accessKey: process.env.AWS_SES_ACCESS_KEY, + secretKey: process.env.AWS_SES_SECRET_KEY, + region: process.env.AWS_SES_REGION, + }, publicKeys: ['pubsweet-client', 'authsome', 'validations'], statuses: { draft: { diff --git a/packages/xpub-faraday/config/production.js b/packages/xpub-faraday/config/production.js new file mode 100644 index 0000000000000000000000000000000000000000..9950c9b354fa8710a4f043a07ac2b86a3cf6bd2f --- /dev/null +++ b/packages/xpub-faraday/config/production.js @@ -0,0 +1,3 @@ +const defaultConfig = require('xpub-faraday/config/default') + +module.exports = defaultConfig