name: Run Tests on: [push, pull_request] jobs: tests: name: Run Tests env: PYTHON: ${{ matrix.python-version }} runs-on: ${{ matrix.os }} defaults: run: # Adding -l {0} helps ensure conda can be found properly in windows. shell: bash -l {0} strategy: fail-fast: false matrix: os: [macos-latest, windows-latest] python-version: [3.7, 3.8, 3.9] steps: - uses: actions/checkout@main with: fetch-depth: 1 - name: Set ENV NAME run: | if [[ "${{ runner.os }}" = "Windows" ]]; then echo "::set-output name=ENV_NAME::pyuvdata_tests_windows" else echo "::set-output name=ENV_NAME::pyuvdata_tests" fi id: env_name - name: Setup Miniconda uses: conda-incubator/setup-miniconda@v2.0.0 with: auto-update-conda: true miniconda-version: "latest" python-version: ${{ matrix.python-version }} environment-file: ci/${{ steps.env_name.outputs.ENV_NAME }}.yml activate-environment: ${{ steps.env_name.outputs.ENV_NAME }} - name: Conda Info run: | conda info -a conda list PYVER=`python -c "import sys; print('{:d}.{:d}'.format(sys.version_info.major, sys.version_info.minor))"` if [[ $PYVER != $PYTHON ]]; then exit 1; fi - name: Install run: | CFLAGS="-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1" pip install . - name: Run Tests run: | mkdir -p empty cd empty pytest --pyargs pyuvdata -c ../setup.cfg --cov=pyuvdata --cov-config=../.coveragerc --cov-report xml:../coverage.xml cd .. - name: Upload Coverage if: success() run: | bash <(curl -s https://codecov.io/bash) -t ${{ secrets.CODECOV_TOKEN }}