Revision 8b22682704c00bd278c44dae1686f726d261b718 authored by Steven Murray on 09 January 2023, 21:13:32 UTC, committed by Steven Murray on 09 January 2023, 21:13:32 UTC
1 parent e377413
config.yml
version: 2.1
executors:
uvdata-executor:
machine:
image: ubuntu-2004:202101-01
shell: /bin/bash -leo pipefail
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:
pyuvdata:
executor: uvdata-executor
parameters:
python_version:
type: string
env_name:
type: string
environment:
PYTHON: << parameters.python_version >>
ENV_NAME: << parameters.env_name >>
OS: "linux"
# Circleci builds fail on forks because the version gets munged. (see #1029)
SETUPTOOLS_SCM_PRETEND_VERSION: "0.0.1"
steps:
- checkout
- restore_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
- run:
name: Install Micromamba
command: wget -qO- https://micro.mamba.pm/api/micromamba/linux-64/latest | sudo tar -C / -xvj bin/micromamba
- run:
name: configure conda environment
command: |
micromamba info
# need these to add gxx and gcc to build novas and cython
micromamba create --name=${ENV_NAME} python=$PYTHON gxx gcc -f ci/${ENV_NAME}.yml -yq
- run:
name: Verify Mamba Config
command: |
source ./ci/_activate_current_env.sh
micromamba list -n ${ENV_NAME}
# check that the python version matches the desired one; exit immediately if not
PYVER=`python -c "import sys; print('{:d}.{:d}'.format(sys.version_info.major, sys.version_info.minor))"`
if [[ $PYVER != $PYTHON ]]; then
exit 1;
fi
- run:
name: install
command: |
source ./ci/_activate_current_env.sh
CFLAGS="-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1" pip install .
- run:
name: run pyuvdata tests
command: |
source ./ci/_activate_current_env.sh
mkdir test-reports
mkdir -p empty
cd empty
pytest --pyargs pyuvdata -n 2 --dist=loadfile --cov=pyuvdata --cov-config="../.coveragerc" --cov-report xml:".././coverage.xml" --junitxml="../test-reports/xunit.xml"
cd ..
- 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
doctest:
executor: uvdata-executor
parameters:
python_version:
type: string
env_name:
type: string
environment:
PYTHON: << parameters.python_version >>
ENV_NAME: << parameters.env_name >>
OS: "linux"
# Circleci builds fail on forks because the version gets munged. (see #1029)
SETUPTOOLS_SCM_PRETEND_VERSION: "0.0.1"
steps:
- checkout
- restore_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
- run:
name: Install Micromamba
command: wget -qO- https://micro.mamba.pm/api/micromamba/linux-64/latest | sudo tar -C / -xvj bin/micromamba
- run:
name: configure conda environment
command: |
micromamba info
# need these to add gxx and gcc to build novas and cython
micromamba create --name=${ENV_NAME} python=$PYTHON gxx gcc -f ci/${ENV_NAME}.yml -yq
- run:
name: Verify Mamba Config
command: |
source ./ci/_activate_current_env.sh
micromamba list -n ${ENV_NAME}
# check that the python version matches the desired one; exit immediately if not
PYVER=`python -c "import sys; print('{:d}.{:d}'.format(sys.version_info.major, sys.version_info.minor))"`
if [[ $PYVER != $PYTHON ]]; then
exit 1;
fi
- run:
name: install
command: |
source ./ci/_activate_current_env.sh
pip install -e .
- run:
name: run tutorial tests
command: |
source ./ci/_activate_current_env.sh
cd docs
python -m pytest -n 2 --doctest-glob="*.rst" -W default
cd ..
- save_cache:
key: deps-{{ .Branch }}-{{ checksum "ci/pyuvdata_tests.yml" }}
paths:
- "/opt/conda/envs/${ENV_NAME}/"
workflows:
version: 2
build_and_test:
jobs:
- pyuvdata:
name: pyuvdata_3.8
python_version: "3.8"
env_name: "pyuvdata_tests"
- pyuvdata:
name: pyuvdata_3.9
python_version: "3.9"
env_name: "pyuvdata_tests"
- pyuvdata:
name: pyuvdata_3.10
python_version: "3.10"
env_name: "pyuvdata_tests"
- pyuvdata:
name: pyuvdata_min_deps
python_version: "3.8"
env_name: "pyuvdata_min_deps_tests"
- pyuvdata:
name: pyuvdata_min_versions
python_version: "3.8"
env_name: "pyuvdata_min_versions_tests"
- doctest:
python_version: "3.8"
env_name: "pyuvdata_tests"
Computing file changes ...