version: 2.1 parameters: go-version: type: string default: 1.16.2 jobs: build-and-test-py37: docker: - image: circleci/python:3.7.10 steps: - checkout - restore_cache: keys: - py37-v1-{{ checksum "requirements.txt" }}-{{ checksum "requirements-dev.txt" }} - v1-{{ checksum "requirements.txt" }}-{{ checksum "requirements-dev.txt" }} - run: | wget https://golang.org/dl/go<< pipeline.parameters.go-version >>.linux-amd64.tar.gz -O go.tar.gz tar -C ~/ -xzf go.tar.gz echo "export PATH=~/go/bin:$PATH" >> $BASH_ENV - run: pip install -r requirements.txt - run: pip install -r requirements-dev.txt - save_cache: key: py37-v1-{{ checksum "requirements.txt" }}-{{ checksum "requirements-dev.txt" }} paths: - '~/.cache/pip' - run: command: pip install -e . name: setup - run: command: pytest ./tests name: tests build-and-test-py38: docker: - image: circleci/python:3.8.1 steps: - checkout - restore_cache: keys: - py38-v1-{{ checksum "requirements.txt" }}-{{ checksum "requirements-dev.txt" }} - run: | wget https://golang.org/dl/go<< pipeline.parameters.go-version >>.linux-amd64.tar.gz -O go.tar.gz tar -C ~/ -xzf go.tar.gz echo "export PATH=~/go/bin:$PATH" >> $BASH_ENV - run: pip install -r requirements.txt - run: pip install -r requirements-dev.txt - save_cache: key: py38-v1-{{ checksum "requirements.txt" }}-{{ checksum "requirements-dev.txt" }} paths: - '~/.cache/pip' - run: command: pip install -e . name: setup - run: command: pytest ./tests name: tests build-and-test-py39: docker: - image: circleci/python:3.9.1 steps: - checkout - restore_cache: keys: - py39-v1-{{ checksum "requirements.txt" }}-{{ checksum "requirements-dev.txt" }} - run: | wget https://golang.org/dl/go<< pipeline.parameters.go-version >>.linux-amd64.tar.gz -O go.tar.gz tar -C ~/ -xzf go.tar.gz echo "export PATH=~/go/bin:$PATH" >> $BASH_ENV - run: pip install -r requirements.txt - run: pip install -r requirements-dev.txt - save_cache: key: py39-v1-{{ checksum "requirements.txt" }}-{{ checksum "requirements-dev.txt" }} paths: - '~/.cache/pip' - run: command: pip install -e . name: setup - run: command: pytest ./tests name: tests workflows: main: jobs: - build-and-test-py37 - build-and-test-py38 - build-and-test-py39