MilesCranmer's picture
Add custom env test to CI
acb3fea
raw
history blame
4.8 kB
name: Linux
on:
push:
branches:
- '*'
paths:
- 'test/**'
- 'pysr/**'
- '.github/workflows/CI.yml'
- 'setup.py'
pull_request:
branches:
- '*'
paths:
- 'test/**'
- 'pysr/**'
- '.github/workflows/CI.yml'
- 'setup.py'
jobs:
test:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
matrix:
julia-version: ['1.7.1']
python-version: ['3.9']
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v1.0.0
- name: "Set up Julia"
uses: julia-actions/setup-julia@v1.6.0
with:
version: ${{ matrix.julia-version }}
- name: "Cache dependencies"
uses: actions/cache@v1 # Thanks FromFile.jl
env:
cache-name: cache-artifacts
with:
path: ~/.julia/artifacts
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: "Set up Python"
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: "Install PySR"
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
python setup.py install
python -c 'import pysr; pysr.install()'
- name: "Install Coverage tool"
run: pip install coverage coveralls
- name: "Run tests"
run: coverage run --source=pysr --omit='*/feynman_problems.py' -m unittest test.test
- name: "Install JAX"
run: pip install jax jaxlib # (optional import)
- name: "Run JAX tests"
run: coverage run --append --source=pysr --omit='*/feynman_problems.py' -m unittest test.test_jax
- name: "Install Torch"
run: pip install torch # (optional import)
- name: "Run Torch tests"
run: coverage run --append --source=pysr --omit='*/feynman_problems.py' -m unittest test.test_torch
- name: "Run custom env tests"
run: coverage run --append --source=pysr --omit='*/feynman_problems.py' -m unittest test.test_env
- name: Coveralls
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_FLAG_NAME: test-${{ matrix.test-name }}
COVERALLS_PARALLEL: true
run: coveralls --service=github
conda_test:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
matrix:
julia-version: ['1.7.1']
python-version: ['3.9']
os: ['ubuntu-latest']
steps:
- uses: actions/checkout@v1.0.0
- name: "Set up Julia"
uses: julia-actions/setup-julia@v1.6.0
with:
version: ${{ matrix.julia-version }}
- name: "Cache dependencies"
uses: actions/cache@v1 # Thanks FromFile.jl
env:
cache-name: cache-artifacts
with:
path: ~/.julia/artifacts
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: "Set up Conda"
uses: conda-incubator/setup-miniconda@v2
with:
miniforge-variant: Mambaforge
miniforge-version: latest
auto-activate-base: true
python-version: ${{ matrix.python-version }}
activate-environment: test
environment-file: environment.yml
- name: "Install PySR"
run: |
python3 -m pip install .
python3 -c 'import pysr; pysr.install()'
- name: "Install Coverage tool"
run: python3 -m pip install coverage coveralls
- name: "Run tests"
run: coverage run --append --source=pysr --omit='*/feynman_problems.py' -m unittest test.test
- name: "Run custom env tests"
run: coverage run --append --source=pysr --omit='*/feynman_problems.py' -m unittest test.test_env
- name: Coveralls
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_FLAG_NAME: conda-test-${{ matrix.test-name }}
COVERALLS_PARALLEL: true
run: coveralls --service=github
coveralls:
name: Indicate completion to coveralls.io
needs:
- test
- conda_test
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
container: python:3-slim
steps:
- name: Finished
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pip install coveralls
coveralls --finish