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: 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: 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