Spaces:
Running
Running
name: Linux | |
on: | |
push: | |
branches: | |
- '*' | |
paths: | |
- 'test/**' | |
- 'pysr/**' | |
- '.github/workflows/**' | |
- 'setup.py' | |
- 'Project.toml' | |
pull_request: | |
branches: | |
- '*' | |
paths: | |
- 'test/**' | |
- 'pysr/**' | |
- '.github/workflows/**' | |
- 'setup.py' | |
- 'Project.toml' | |
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: "Change package server" | |
env: | |
JULIA_PKG_SERVER: "" | |
run: | | |
julia -e 'using Pkg; Pkg.Registry.add("General")' | |
- 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: 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: "Change package server" | |
env: | |
JULIA_PKG_SERVER: "" | |
run: | | |
julia -e 'using Pkg; Pkg.Registry.add("General")' | |
- 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: "Ensure that static libpython warning appears" | |
run: coverage run --source=pysr --omit='*/feynman_problems.py' -m unittest test.test_static_libpython_warning | |
- name: "Run tests" | |
run: coverage run --append --source=pysr --omit='*/feynman_problems.py' -m unittest test.test | |
- 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 | |