config.yml
version: 2.1
orbs:
codecov: codecov/codecov@1.0.2 # to get this to work, had to opt-in to using third party orbs in Organization Security settings.
jobs:
linter:
parameters:
python_version:
type: string
docker:
- image: continuumio/miniconda:latest
environment:
PYTHON: << parameters.python_version >>
ENV_NAME: pyuvdata_linting
steps:
- checkout
- restore_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_linting.yml" }}
- run:
name: configure conda environment
command: ./ci/install-circle.sh
- run:
name: linting for PEP8 compliance
command: |
source activate ${ENV_NAME}
pycodestyle --ignore=E501,W503
- save_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_linting.yml" }}
paths:
- "/opt/conda/envs/${ENV_NAME}/"
pyuvdata:
parameters:
python_version:
type: string
docker:
- image: continuumio/miniconda:latest
environment:
PYTHON: << parameters.python_version >>
ENV_NAME: pyuvdata_tests
steps:
- checkout
- restore_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
- run:
name: configure conda environment
command: ./ci/install-circle.sh
- run:
name: install
command: |
source activate ${ENV_NAME}
python setup.py build_ext --force --inplace
- run:
name: run pyuvdata tests
command: |
source activate ${ENV_NAME}
mkdir test-reports
python -m pytest pyuvdata -v --cov=pyuvdata --cov-config=.coveragerc --cov-report xml:./coverage.xml --junitxml=test-reports/xunit.xml
- save_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
paths:
- "/opt/conda/envs/${ENV_NAME}/"
- store_test_results:
path: test-reports
- store_artifacts:
path: test-reports
- codecov/upload:
file: ./coverage.xml
pyuvdata_min_deps:
parameters:
python_version:
type: string
docker:
- image: continuumio/miniconda:latest
environment:
PYTHON: << parameters.python_version >>
ENV_NAME: pyuvdata_min_deps_tests
steps:
- checkout
- restore_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_min_deps_tests.yml" }}
- run:
name: configure conda environment
command: ./ci/install-circle.sh
- run:
name: install
command: |
source activate ${ENV_NAME}
python setup.py build_ext --force --inplace
- run:
name: run pyuvdata tests
command: |
source activate ${ENV_NAME}
mkdir test-reports
python -m pytest pyuvdata -v --cov=pyuvdata --cov-config=.coveragerc --cov-report xml:./coverage.xml --junitxml=test-reports/xunit.xml
- save_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_min_deps_tests.yml" }}
paths:
- "/opt/conda/envs/${ENV_NAME}/"
- store_test_results:
path: test-reports
- store_artifacts:
path: test-reports
- codecov/upload:
file: ./coverage.xml
doctest:
parameters:
python_version:
type: string
docker:
- image: continuumio/miniconda:latest
environment:
PYTHON: << parameters.python_version >>
ENV_NAME: pyuvdata_tests
steps:
- checkout
- restore_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
- run:
name: configure conda environment
command: ./ci/install-circle.sh
- run:
name: install
command: |
source activate ${ENV_NAME}
python setup.py build_ext --force --inplace
- run:
name: run tutorial tests
command: |
source activate ${ENV_NAME}
python -m doctest docs/tutorial.rst
- save_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
paths:
- "/opt/conda/envs/${ENV_NAME}/"
hera_cal:
parameters:
python_version:
type: string
docker:
- image: continuumio/miniconda:latest
environment:
PYTHON: << parameters.python_version >>
ENV_NAME: "hera_cal"
steps:
- checkout
- restore_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/hera_cal.yml" }}
- run:
name: configure conda environment
command: ./ci/install-circle.sh
- run:
name: install related repos
command: |
source activate ${ENV_NAME}
pip install .
pip install git+https://github.com/HERA-Team/linsolve.git
pip install git+https://github.com/HERA-Team/hera_qm.git
pip install git+https://github.com/HERA-Team/uvtools.git
pip install git+https://github.com/HERA-Team/hera_sim.git
- run:
name: run hera_cal tests
command: |
source activate ${ENV_NAME}
cd ../
git clone git@github.com:HERA-Team/hera_cal.git
cd hera_cal
mkdir test-reports
python -m pytest hera_cal -v --junitxml=test-reports/xunit.xml
- save_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/hera_cal.yml" }}
paths:
- "/opt/conda/envs/${ENV_NAME}/"
- store_test_results:
path: hera_cal/test-reports
- store_artifacts:
path: hera_cal/test-reports
hera_qm:
parameters:
python_version:
type: string
docker:
- image: continuumio/miniconda:latest
environment:
PYTHON: << parameters.python_version >>
ENV_NAME: "hera_qm"
steps:
- checkout
- restore_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/hera_qm.yml" }}
- run:
name: configure conda environment
command: ./ci/install-circle.sh
- run:
name: install related repos
command: |
source activate ${ENV_NAME}
pip install .
pip install git+https://github.com/HERA-Team/omnical.git
pip install git+https://github.com/HERA-Team/linsolve.git
pip install git+https://github.com/HERA-Team/uvtools.git
pip install git+https://github.com/HERA-Team/hera_cal.git
- run:
name: run hera_qm tests
command: |
source activate ${ENV_NAME}
cd ../
git clone git@github.com:HERA-Team/hera_qm.git
cd hera_qm
mkdir test-reports
python -m pytest hera_qm -v --junitxml=test-reports/xunit.xml
- save_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/hera_qm.yml" }}
paths:
- "/opt/conda/envs/${ENV_NAME}/"
- store_test_results:
path: hera_qm/test-reports
- store_artifacts:
path: hera_qm/test-reports
workflows:
version: 2
build_and_test:
jobs:
- linter:
python_version: "3.6"
- pyuvdata:
name: pyuvdata_2.7
python_version: "2.7"
- pyuvdata:
name: pyuvdata_3.6
python_version: "3.6"
- pyuvdata:
name: pyuvdata_3.7
python_version: "3.7"
- pyuvdata_min_deps:
python_version: "3.6"
- doctest:
python_version: "3.6"
external_tests:
jobs:
- hera_cal:
python_version: "3.6"
- hera_qm:
python_version: "3.6"