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