image: node:10.15.1 variables: CYPRESS_CACHE_FOLDER: "$CI_PROJECT_DIR/cache/Cypress" before_script: - "apt-get update" - "apt-get install -y build-essential" cache: key: ${CI_COMMIT_REF_SLUG} paths: - node_modules - ${CYPRESS_CACHE_FOLDER} install and build: stage: install script: - yarn install artifacts: expire_in: 2 hours when: always paths: - node_modules stages: - install - test - build - deploy - integration tests lint: stage: test script: - yarn run lint flow: stage: test script: - yarn run flow unit: stage: test script: - yarn run test build development: stage: build script: - yarn run build:dev artifacts: expire_in: 1 week paths: - build/dev build beta: stage: build script: - yarn run build:beta only: - beta artifacts: expire_in: 1 week paths: - build/beta - scripts/s3sync.sh build stable: stage: build script: - 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 before_script: [] 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}/" - curl "https://api.telegram.org/bot699197118:AAGXNTaC5Q-ljmy_dMvaIvAKy1XjlkA3Iss/sendMessage?chat_id=-1001354778014&text=https://trezor-wallet-dev.trezor.io/${CI_BUILD_REF_NAME}" - 'echo "Remove working dir, workaround for cache" && rm -r ./*' 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 before_script: [] 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 before_script: [] 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 before_script: [] 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