From 4d08b67a00c220b11e40718e833abe8da95e3c50 Mon Sep 17 00:00:00 2001 From: Vladimir Volek Date: Tue, 20 Aug 2019 14:50:33 +0200 Subject: [PATCH] migrate ci --- .gitlab-ci.yml | 158 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..22f92159 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,158 @@ +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 \ No newline at end of file