Skip to content

Build wheels only wheen needed #57

Build wheels only wheen needed

Build wheels only wheen needed #57

Workflow file for this run

name: CI
on:
push:
pull_request:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
contents: read
jobs:
sdist:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.x"]
steps:
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
python -m pip install build twine
- name: Build package
run: |
python -m build --sdist
python -m twine check dist/*
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: sdist
path: |
dist/*.tar.gz
build:
name: ${{ matrix.os }} ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
needs: sdist
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
# os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, macos-latest]
steps:
- name: Get source distrubtion
uses: actions/download-artifact@v3
with:
name: sdist
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
python -m pip install twine
- name: Build package
run: |
python -m pip wheel --wheel-dir dist geomodels*.tar.gz
python -m twine check dist/*
- name: Install
run: |
python -m pip install dist/*.whl
- name: Prepare the environment
run: |
geomodels-cli install-data -d data recommended
- name: Install test dependencies
run: |
python -m pip install pytest pytest-cov
if [ -f requirements-test.txt ]; then pip install -r requirements-test.txt; fi
- name: Test CLI
run: |
geomodels-cli info
- name: Test
run: |
cd dist
env GEOGRAPHICLIB_DATA="${PWD}/../data" python -m pytest --pyargs geomodels
lint:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.x"]
steps:
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install lint dependencies
run: |
python -m pip install flake8 pydocstyle isort black
if [ -f requirements-lint.txt ]; then pip install -r requirements-lint.txt; fi
- name: Lint
run: |
make lint
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'true'
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install docs dependencies
run: |
python -m pip install sphinx
if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi
if [ -f requirements-docs.txt ]; then pip install -r requirements-docs.txt; fi
- name: Build docs
run: |
# make docs include doctest
make docs
make -C docs linkcheck