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 warning_test: 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 -W error --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" 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" - warning_test: name: pyuvdata_warning_test python_version: "3.8" env_name: "pyuvdata_tests" - doctest: python_version: "3.8" env_name: "pyuvdata_tests"