From c3a54bf452142ac6a8fb61c9918959b2df204654 Mon Sep 17 00:00:00 2001
From: Todd Dembrey <todd.dembrey@torchbox.com>
Date: Mon, 24 Feb 2020 17:39:00 +0000
Subject: [PATCH] Attempt to use workflow for circle ci

---
 .circleci/config.yml | 117 +++++++++++++++++++++++++++++++++----------
 1 file changed, 90 insertions(+), 27 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 26524bd38..4a6067294 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -2,23 +2,31 @@
 #
 # Check https://circleci.com/docs/2.0/language-python/ for more details
 #
-version: 2
-jobs:
-  build:
+version: 2.1
+executors:
+  python:
+    docker:
+      - image: circleci/python:3.6.10
+  node:
+    docker:
+      - image: circleci/node:10
+  with-database:
     docker:
-      - image: circleci/python:3.6.9-stretch-node
+      - image: circleci/python:3.6.10
         environment:
           DATABASE_URL: postgresql://root@localhost/hypha?sslmode=disable
           PGHOST: localhost
           PGUSER: root
           DJANGO_SETTINGS_MODULE: hypha.settings.test
           SEND_MESSAGES: false
-
       - image: circleci/postgres:10.10
         environment:
           POSTGRES_USER: root
           POSTGRES_DB: hypha
 
+jobs:
+  build-fe:
+    executor: node
     working_directory: ~/repo
 
     steps:
@@ -28,37 +36,18 @@ jobs:
           name: set owner on /usr/local
           command: sudo chown -R circleci:circleci /usr/local
 
-      - restore_cache:
-          keys:
-            - v2-python-{{ .Branch }}-{{ checksum "requirements-dev.txt" }}
-            - v2-python-{{ .Branch }}-
-            - v2-python-
-
       - restore_cache:
           keys:
             - v2-npm-{{ .Branch }}-{{ checksum "package-lock.json" }}
             - v2-npm-{{ .Branch }}-
             - v2-npm-
 
-      - run:
-          name: install python dependencies
-          command: |
-            python3 -m venv venv
-            . venv/bin/activate
-            pip install coverage codecov
-            pip install -r requirements-dev.txt
-
       - run:
           name: install node dependencies
           command: |
             npm install --quiet
             npm install -g gulp-cli
 
-      - save_cache:
-          paths:
-            - ./venv
-          key: v2-python-{{ .Branch }}-{{ checksum "requirements-dev.txt" }}
-
       - save_cache:
           paths:
             - ./node_modules
@@ -67,17 +56,91 @@ jobs:
           key: v2-npm-{{ .Branch }}-{{ checksum "package-lock.json" }}
 
       - run:
-          name: buils static assets
+          name: builds static assets
           command: gulp deploy
 
+      - persist_to_workspace:
+          root: ~/repo
+          paths:
+            - hypha/static_compiled
+
+
+  build-be:
+    executor: python
+    working_directory: ~/repo
+
+    steps:
+      - checkout
+
+      - run:
+          name: set owner on /usr/local
+          command: sudo chown -R circleci:circleci /usr/local
+
+      - restore_cache:
+          keys:
+            - v2-python-{{ .Branch }}-{{ checksum "requirements-dev.txt" }}
+            - v2-python-{{ .Branch }}-
+            - v2-python-
+
+      - run:
+          name: install python dependencies
+          command: |
+            python3 -m venv venv
+            . venv/bin/activate
+            pip install coverage codecov
+            pip install -r requirements-dev.txt
+
+      - save_cache:
+          paths:
+            - ./venv
+          key: v2-python-{{ .Branch }}-{{ checksum "requirements-dev.txt" }}
+
+      - persist_to_workspace:
+          root: ~/repo
+          paths:
+            - venv
+
+  test:
+    executor: with-database
+    working_directory: ~/repo
+    steps:
+      - checkout
+      - attach_workspace:
+          at: ~/repo
       - run:
           name: run tests
           command: |
             . venv/bin/activate
-            flake8 ./hypha
-            make sort
             python manage.py collectstatic --noinput --verbosity=0
             python manage.py check
             python manage.py makemigrations --check --noinput --verbosity=1
             coverage run --source='hypha' manage.py test
             codecov
+
+  lint:
+    executor: python 
+    working_directory: ~/repo
+    steps:
+      - checkout
+      - attach_workspace:
+          at: ~/repo 
+      - run:
+          name: run tests
+          command: |
+            . venv/bin/activate
+            flake8 ./hypha
+            make sort
+
+workflows:
+    version: 2.1
+    process: 
+      jobs:
+        - build-fe 
+        - build-be
+        - test:
+            requires:
+            - build-fe 
+            - build-be
+        - lint:
+            requires:
+              - build-be
-- 
GitLab