name: Run Downstream tests on: push: paths-ignore: - 'docs/**' - '**.md' - '**.rst' pull_request: paths-ignore: - 'docs/**' - '**.md' - '**.rst' # Run weekly on Monday at 1:23 UTC schedule: - cron: '23 1 * * 1' workflow_dispatch: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test: runs-on: ${{ matrix.os }} # Disable scheduled CI runs on forks if: github.event_name != 'schedule' || github.repository_owner == 'ipython' strategy: matrix: os: [ubuntu-latest] python-version: ["3.13"] include: - os: macos-14 python-version: "3.13" steps: - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Update Python installer run: | python -m pip install --upgrade pip setuptools wheel - name: Install ipykernel run: | cd .. git clone https://github.com/ipython/ipykernel cd ipykernel pip install -e .[test] cd .. - name: Install and update Python dependencies run: | python -m pip install --upgrade -e file://$PWD#egg=ipython[test] # we must install IPython after ipykernel to get the right versions. python -m pip install --upgrade --upgrade-strategy eager flaky ipyparallel - name: pytest ipykernel env: COLUMNS: 120 run: | cd ../ipykernel pytest - name: Install sagemath-repl run: | # Sept 2024, sage has been failing for a while, # Skipping. # cd .. # git clone --depth 1 https://github.com/sagemath/sage # cd sage # # We cloned it for the tests, but for simplicity we install the # # wheels from PyPI. # # (Avoid 10.3b6 because of https://github.com/sagemath/sage/pull/37178) # pip install --pre sagemath-repl sagemath-environment # # Install optionals that make more tests pass # pip install pillow # pip install --pre sagemath-categories # cd .. - name: Test sagemath-repl run: | # cd ../sage/ # # From https://github.com/sagemath/sage/blob/develop/pkgs/sagemath-repl/tox.ini # sage-runtests -p --environment=sage.all__sagemath_repl --baseline-stats-path=pkgs/sagemath-repl/known-test-failures.json --initial --optional=sage src/sage/repl src/sage/doctest src/sage/misc/sage_input.py src/sage/misc/sage_eval.py - name: Install pyflyby run: | cd .. git clone https://github.com/deshaw/pyflyby cd pyflyby pip install meson-python meson ninja pybind11>=2.10.4 setuptools-scm pip install setuptools wheel # needed for epydoc pip install --no-build-isolation -ve .[test] pip install 'pytest<=8' cd .. - name: Test pyflyby (IPython integration only) run: | cd ../pyflyby pytest tests/test_interactive.py --deselect tests/test_interactive.py::test_debug_namespace_1_py3[prompt_toolkit] --deselect tests/test_interactive.py::test_run_separate_script_namespace_2