image: node:9.3 cache: paths: - node_modules stages: - test - build - deploy lint: stage: test script: - yarn install - yarn run lint flow: stage: test script: - yarn run flow unit: stage: test script: - yarn install - yarn run test build development: stage: build script: - yarn install - yarn run build:dev artifacts: expire_in: 1 week paths: - build/dev build beta: stage: build script: - yarn install - yarn run build:beta only: - beta artifacts: expire_in: 1 week paths: - build/beta - scripts/s3sync.sh build stable: stage: build script: - yarn install - yarn run build:stable only: - stable artifacts: expire_in: 1 week paths: - build/stable - scripts/s3sync.sh deploy review: stage: deploy variables: GIT_STRATEGY: none dependencies: - build development environment: name: $CI_BUILD_REF_NAME url: $BASE_REVIEW_URL/$CI_BUILD_REF_NAME on_stop: delete review script: - echo "Deploy a review app" - '[ -z "${DEPLOY_BASE_DIR}" ] && echo "Deploy base dir cannot be empty" && exit 255' - env - mkdir -p "${DEPLOY_BASE_DIR}/${CI_BUILD_REF_NAME}" - echo "Copy dev build to web server ${DEPLOY_BASE_DIR}/${CI_BUILD_REF_NAME}..." - rsync --delete -va build/dev/ "${DEPLOY_BASE_DIR}/${CI_BUILD_REF_NAME}/" only: - branches tags: - deploy deploy stage beta: stage: deploy variables: GIT_STRATEGY: none AWS_ACCESS_KEY_ID: $STAGE_AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $STAGE_AWS_SECRET_ACCESS_KEY when: manual dependencies: - build beta script: - scripts/s3sync.sh stage beta only: - beta tags: - deploy deploy stage stable: stage: deploy variables: GIT_STRATEGY: none AWS_ACCESS_KEY_ID: $STAGE_AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $STAGE_AWS_SECRET_ACCESS_KEY when: manual dependencies: - build stable script: - scripts/s3sync.sh stage stable only: - stable tags: - deploy delete review: before_script: [] stage: deploy variables: GIT_STRATEGY: none when: manual environment: name: $CI_BUILD_REF_NAME action: stop script: - '[ -z "${DEPLOY_BASE_DIR}" ] && echo "Deploy dir can not be empty" && exit 1' - '[ -z "${CI_BUILD_REF_NAME}" ] && echo "Build name can not be empty" && exit 1' - '[ ! -d "${DEPLOY_BASE_DIR}/${CI_BUILD_REF_NAME}" ] && echo "Folder can not be found, skipping..." && exit 0' - 'rm -r "${DEPLOY_BASE_DIR}/${CI_BUILD_REF_NAME}"' only: - branches tags: - deploy