Add MacOS CI workflow using mamba #4689
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI Tests | |
on: | |
push: | |
# branches: | |
# - master | |
pull_request: | |
schedule: | |
# run every Monday at 6am UTC | |
- cron: '0 6 * * 1' | |
env: | |
SETUP_XVFB: True # avoid issues if mpl tries to open a GUI window | |
TOXARGS: '-v' | |
HYPOTHESIS_PROFILE: 'ci' | |
jobs: | |
ci-tests: | |
name: ${{ matrix.os }}, ${{ matrix.tox_env }} | |
runs-on: ${{ matrix.os }} | |
if: "!(contains(github.event.head_commit.message, '[skip ci]') || contains(github.event.head_commit.message, '[ci skip]'))" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-latest | |
python: '3.13' | |
tox_env: 'ephemeris_connection' | |
- os: ubuntu-latest | |
python: '3.13' | |
tox_env: 'black' | |
- os: ubuntu-latest | |
python: '3.13' | |
tox_env: 'py313-test-cov' | |
- os: ubuntu-latest | |
python: '3.13' | |
tox_env: 'notebooks' | |
# - os: ubuntu-latest | |
# python: '3.8' | |
# tox_env: 'docs' | |
# - os: ubuntu-latest | |
# python: '3.10' | |
# tox_env: 'py310-test-alldeps-cov' | |
# - os: macos-12 | |
# python: '3.13' | |
# tox_env: 'py313-test' | |
# - os: windows-latest | |
# python: '3.8' | |
# tox_env: 'py38-test' | |
- os: ubuntu-latest | |
python: '3.9' | |
tox_env: 'oldestdeps' | |
# - os: ubuntu-latest | |
# python: '3.8' | |
# tox_env: 'codestyle' | |
# uncomment this if needed to run a single test quickly | |
# can specify OS and python versions | |
# - os: macos-12 | |
# python: '3.12' | |
# tox_env: 'singletest' | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install base dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install tox | |
- name: Install graphviz dependency | |
if: "endsWith(matrix.tox_env, 'build_docs')" | |
run: sudo apt-get -y install graphviz | |
- name: Install pandoc dependency | |
if: "endsWith(matrix.tox_env, 'docs')" | |
run: sudo apt-get -y install pandoc | |
- name: Print Python, pip, and tox versions | |
run: | | |
python -c "import sys; print(f'Python {sys.version}')" | |
python -c "import pip; print(f'pip {pip.__version__}')" | |
python -c "import tox; print(f'tox {tox.__version__}')" | |
- name: Run tests | |
run: tox -e ${{ matrix.tox_env }} | |
- name: Upload coverage to codecov | |
if: "endsWith(matrix.tox_env, '-cov')" | |
uses: codecov/codecov-action@v2 | |
with: | |
files: coverage.xml | |
# - name: Publish docs as an artifact | |
# if: "endsWith(matrix.tox_env, 'docs')" | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: documentation | |
# path: .tox/docs_out/ | |
ci-tests-macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set-Up Python Env | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
init-shell: bash | |
environment-name: pint | |
cache-environment: true | |
cache-downloads: true | |
create-args: >- | |
--platform osx-64 | |
-c conda-forge | |
python=3.11 | |
astropy | |
git | |
- name: Install base dependencies | |
shell: bash -el {0} | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install tox pytest hypothesis numdifftools pathos setuptools | |
- name: Print OS, machine info | |
shell: bash -el {0} | |
run: | | |
python -c "import os; print(f'os {os.uname()}')" | |
python -c "import platform; print(f'processor {platform.processor()}')" | |
python -c "import numpy as np; print(f'eps: {np.finfo(np.longdouble).eps}')" | |
- name: Print Python, pip, and tox versions | |
shell: bash -el {0} | |
run: | | |
python -c "import sys; print(f'Python {sys.version}')" | |
python -c "import pip; print(f'pip {pip.__version__}')" | |
python -c "import tox; print(f'tox {tox.__version__}')" | |
- name: Install PINT and requirements | |
shell: bash -el {0} | |
run: | | |
python -m pip install -r requirements.txt | |
python -m pip install -r requirements_dev.txt | |
python -m pip install --force-reinstall --no-deps . | |
- name: Run tests | |
shell: bash -el {0} | |
run: pytest -v --pyargs tests | |