Skip to content

CI

CI #398

name: CI
on:
pull_request:
branches:
- master
push:
branches:
- master
workflow_dispatch:
jobs:
setup:
name: Setup ${{ matrix.os }} Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, windows-latest]
python-version: ["3.11", "3.12"]
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: 'mamba'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- if: matrix.os == 'ubuntu-20.04'
name: Setup install dependencies
run: |
cd mamba
python -m venv venv
source venv/bin/activate
pip install -e .[dev,docs]
- if: matrix.os == 'windows-latest'
name: Setup install dependencies
run: |
cd mamba
python -m venv venv
venv\Scripts\activate
pip install -e .[dev,docs]
- name: prep for persist
run: tar -czf mamba.tar.gz mamba
- name: persist
uses: actions/upload-artifact@v3
with:
name: setup-artifact-${{ matrix.os }}-py${{ matrix.python-version }}
path: mamba.tar.gz
retention-days: 1
linting:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: psf/black@stable
with:
options: '--check --target-version py311'
version: '23.9.1'
src: "neo3/ examples/ tests/"
type-checking:
needs: setup
runs-on: ubuntu-20.04
steps:
- name: restore artifact
uses: actions/download-artifact@v3
with:
name: setup-artifact-ubuntu-20.04-py3.11
- name: Set up Python 3.11
uses: actions/[email protected]
with:
python-version: "3.11"
check-latest: true
- name: extract & type check
run: |
tar -xf mamba.tar.gz
cd mamba
source venv/bin/activate
make type
unit-tests:
name: Unit tests ${{ matrix.os }} Python ${{ matrix.python-version }}
needs: setup
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-20.04, windows-latest ]
python-version: ["3.11", "3.12"]
steps:
- name: restore artifact
uses: actions/download-artifact@v3
with:
name: setup-artifact-${{ matrix.os }}-py${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: '${{ matrix.python-version }}'
check-latest: true
- if: success() && matrix.os == 'ubuntu-20.04'
name: extract and test
run: |
tar -xf mamba.tar.gz
cd mamba
source venv/bin/activate
make test
- if: success() && matrix.os == 'windows-latest'
name: extract and test
run: |
tar -xf mamba.tar.gz
cd mamba
venv\Scripts\activate
make test
coverage:
needs: setup
runs-on: ubuntu-20.04
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: restore artifact
uses: actions/download-artifact@v3
with:
name: setup-artifact-ubuntu-20.04-py3.11
- name: Set up Python 3.11
uses: actions/[email protected]
with:
python-version: "3.11"
check-latest: true
- name: check coverage
run: |
tar -xf mamba.tar.gz
cd mamba
source venv/bin/activate
coverage run -m unittest discover -v -s tests/
pip install coveralls
coveralls --service=github