From 46980355ea389075df9077ffc2f198281f56e238 Mon Sep 17 00:00:00 2001 From: Thomas Kelly Date: Thu, 7 Sep 2017 15:28:49 -0400 Subject: [PATCH] Migrate to CircleCI 2 --- .circleci/config.yml | 143 +++++++++++++++++++++++++++++++++++++++++++ .gitignore | 1 + circle.yml | 25 -------- 3 files changed, 144 insertions(+), 25 deletions(-) create mode 100644 .circleci/config.yml delete mode 100644 circle.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..ffec5f050 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,143 @@ +version: 2 +jobs: + build: + docker: + - image: circleci/node:latest + steps: + - checkout + - restore_cache: + keys: + - root-cache-{{ checksum "package-lock.json" }} + - root-cache + - restore_cache: + keys: + - slate-tools-cache-{{ checksum "./packages/slate-tools/package-lock.json" }} + - slate-tools-cache + - restore_cache: + keys: + - slate-theme-cache-{{ checksum "./packages/slate-theme/package-lock.json" }} + - slate-theme-cache + - restore_cache: + keys: + - slate-cli-cache-{{ checksum "./packages/slate-cli/package-lock.json" }} + - slate-cli-cache + - run: + name: Bootstrap packages + command: npm run bootstrap + - save-cache: + key: root-cache-{{ checksum "package-lock.json" }} + paths: + - ./node_modules + - save-cache: + key: root-cache + paths: + - ./node_modules + - save-cache: + key: slate-tools-cache-{{ checksum "./packages/slate-tools/package-lock.json" }} + paths: + - ./packages/slate-tools/node_modules + - save-cache: + key: slate-tools-cache + paths: + - ./packages/slate-tools/node_modules + - save-cache: + key: slate-theme-cache-{{ checksum "./packages/slate-theme/package-lock.json" }} + paths: + - ./packages/slate-theme/node_modules + - save-cache: + key: slate-theme-cache + paths: + - ./packages/slate-theme/node_modules + - save-cache: + key: slate-cli-cache-{{ checksum "./packages/slate-cli/package-lock.json" }} + paths: + - ./packages/slate-cli/node_modules + - save-cache: + key: slate-cli-cache + paths: + - ./packages/slate-cli/node_modules + test: + docker: + - image: circleci/node:latest + steps: + - checkout + - restore_cache: + keys: + - root-cache-{{ checksum "package-lock.json" }} + - root-cache + - restore_cache: + keys: + - slate-tools-cache-{{ checksum "./packages/slate-tools/package-lock.json" }} + - slate-tools-cache + - restore_cache: + keys: + - slate-theme-cache-{{ checksum "./packages/slate-theme/package-lock.json" }} + - slate-theme-cache + - restore_cache: + keys: + - slate-cli-cache-{{ checksum "./packages/slate-cli/package-lock.json" }} + - slate-cli-cache + - run: + name: Test packages + command: npm test + + deploy: + docker: + - image: circleci/node:latest + steps: + - checkout + - restore_cache: + keys: + - root-cache-{{ checksum "package-lock.json" }} + - root-cache + - restore_cache: + keys: + - slate-tools-cache-{{ checksum "./packages/slate-tools/package-lock.json" }} + - slate-tools-cache + - restore_cache: + keys: + - slate-theme-cache-{{ checksum "./packages/slate-theme/package-lock.json" }} + - slate-theme-cache + - restore_cache: + keys: + - slate-cli-cache-{{ checksum "./packages/slate-cli/package-lock.json" }} + - slate-cli-cache + - run: + name: Create slate-theme.zip + command: cd packages/slate-theme && ./node_modules/.bin/slate zip + - run: + name: Create slate-src.zip + command: node scripts/zip_src + - run: + name: Upload zips to AWS + command: node scripts/aws_upload + - run: + name: Upload zips to the Github release + command: node scripts/github_release + - run: + name: Purge Fastly cache + command: curl -X PURGE https://sdks.shopifycdn.com/slate/latest/slate-theme.zip && curl -X PURGE https://sdks.shopifycdn.com/slate/latest/slate-src.zip + +workflows: + version: 2 + build-n-test-n-maybe-deploy: + jobs: + - build: + filters: + tags: + only: /.*/ + - test: + requires: + - build + filters: + tags: + only: /.*/ + - deploy: + requires: + - test + filters: + tags: + only: /v[0-9]+(\.[0-9]+)*/ + branches: + ignore: /.*/ + diff --git a/.gitignore b/.gitignore index 3641757c8..2b357658c 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,7 @@ upload /.idea deploy.log config.yml +!.circleci/config.yml secrets.json .jekyll-metadata .ruby-version diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 994edc9ba..000000000 --- a/circle.yml +++ /dev/null @@ -1,25 +0,0 @@ -machine: - node: - version: 6.2.2 - -dependencies: - cache_directories: - - packages/slate-tools/node_modules - - packages/slate-theme/node_modules - - packages/slate-cli/node_modules - override: - - npm run bootstrap - -deployment: - release: - tag: /v[0-9]+(\.[0-9]+)*/ - owner: Shopify - commands: - - npm run bootstrap - - cd packages/slate-theme && ./node_modules/.bin/slate zip - - node scripts/zip_src - - node scripts/aws_upload - - node scripts/github_release - - curl -X PURGE https://sdks.shopifycdn.com/slate/latest/slate-theme.zip - - curl -X PURGE https://sdks.shopifycdn.com/slate/latest/slate-src.zip -