132 lines
3.6 KiB
YAML
132 lines
3.6 KiB
YAML
name: CI
|
|
|
|
on:
|
|
# any time someone pushes a new branch to origin
|
|
push:
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
|
|
mypy:
|
|
name: 'MyPy'
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Setup python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Install dependencies
|
|
run: pip install -U . --upgrade-strategy eager -r requirements-test.txt
|
|
|
|
- name: Run MyPy check
|
|
run: mypy tractor/ --ignore-missing-imports --show-traceback
|
|
|
|
# test that we can generate a software distribution and install it
|
|
# thus avoid missing file issues after packaging.
|
|
sdist-linux:
|
|
name: 'sdist'
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Setup python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Build sdist
|
|
run: python setup.py sdist --formats=zip
|
|
|
|
- name: Install sdist from .zips
|
|
run: python -m pip install dist/*.zip
|
|
|
|
|
|
testing-linux:
|
|
name: '${{ matrix.os }} Python ${{ matrix.python }} - ${{ matrix.spawn_backend }}'
|
|
timeout-minutes: 10
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
python: ['3.10']
|
|
spawn_backend: [
|
|
'trio',
|
|
'mp_spawn',
|
|
'mp_forkserver',
|
|
]
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Setup python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: '${{ matrix.python }}'
|
|
|
|
- name: Install dependencies
|
|
run: pip install -U . -r requirements-test.txt -r requirements-docs.txt --upgrade-strategy eager
|
|
|
|
- name: List dependencies
|
|
run: pip list
|
|
|
|
- name: Run tests
|
|
run: pytest tests/ --spawn-backend=${{ matrix.spawn_backend }} -rsx
|
|
|
|
# We skip 3.10 on windows for now due to not having any collabs to
|
|
# debug the CI failures. Anyone wanting to hack and solve them is very
|
|
# welcome, but our primary user base is not using that OS.
|
|
|
|
# TODO: use job filtering to accomplish instead of repeated
|
|
# boilerplate as is above XD:
|
|
# - https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows
|
|
# - https://docs.github.com/en/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
|
# - https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idif
|
|
# testing-windows:
|
|
# name: '${{ matrix.os }} Python ${{ matrix.python }} - ${{ matrix.spawn_backend }}'
|
|
# timeout-minutes: 12
|
|
# runs-on: ${{ matrix.os }}
|
|
|
|
# strategy:
|
|
# fail-fast: false
|
|
# matrix:
|
|
# os: [windows-latest]
|
|
# python: ['3.10']
|
|
# spawn_backend: ['trio', 'mp']
|
|
|
|
# steps:
|
|
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v2
|
|
|
|
# - name: Setup python
|
|
# uses: actions/setup-python@v2
|
|
# with:
|
|
# python-version: '${{ matrix.python }}'
|
|
|
|
# - name: Install dependencies
|
|
# run: pip install -U . -r requirements-test.txt -r requirements-docs.txt --upgrade-strategy eager
|
|
|
|
# # TODO: pretty sure this solves debugger deps-issues on windows, but it needs to
|
|
# # be verified by someone with a native setup.
|
|
# # - name: Force pyreadline3
|
|
# # run: pip uninstall pyreadline; pip install -U pyreadline3
|
|
|
|
# - name: List dependencies
|
|
# run: pip list
|
|
|
|
# - name: Run tests
|
|
# run: pytest tests/ --spawn-backend=${{ matrix.spawn_backend }} -rsx
|