summaryrefslogtreecommitdiff
path: root/.circleci/config.yml
blob: ec9f2ad283f033b36fb4db1464c6176c6fc2e389 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
version: 2.1

jobs:
  build-and-test:
    docker:
      - image: cimg/python:3.9.2
    steps:
      - checkout
      - restore_cache:
          keys:
            - dev-cache-{{ checksum "dev-requirements.txt" }}-{{ checksum "tox.ini" }}
      - run:
          name: Install dev dependencies
          command: pip3 install -r dev-requirements.txt
      - run:
          name: Install CI dependencies
          command: pip3 install tox twine tox-pyenv build
      - run: pyenv install --skip-existing 3.5-dev
      - run: pyenv install --skip-existing 3.6-dev
      - run: pyenv install --skip-existing 3.7-dev
      - run: pyenv install --skip-existing 3.8-dev
      - run: pyenv install --skip-existing 3.9-dev
      - run:
          name: Set local Python versions
          command: pyenv local 3.5-dev 3.6-dev 3.7-dev 3.8-dev 3.9-dev 3.9.2
      - save_cache:
          key: dev-cache-{{ checksum "dev-requirements.txt" }}-{{ checksum "tox.ini" }}
          paths:
            - /home/circleci/.cache/pip
            - /home/circleci/.pyenv/versions/
            - /home/circleci/.local/lib/

      - run:
          command: flake8
          name: Flake8 / linting
      - run:
          command: tox
          name: Run package tests across all python variants
      - store_test_results:
          path: reports
      - run:
          command: python3 -m build
          name: Build source distribution
      - store_artifacts:
          path: ./dist

workflows:
  main:
    jobs:
      - build-and-test