name: "Copilot Setup Steps"

# Automatically run the setup steps when they are changed to allow for easy validation, and
# allow manual testing through the repository's "Actions" tab
on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
  copilot-setup-steps:
    runs-on: ubuntu-latest

    # Set the permissions to the lowest permissions possible needed for your steps.
    # Copilot will be given its own token for its operations.
    permissions:
      # If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
      contents: read

    # You can define any steps you want, and they will run before the agent starts.
    # If you do not check out your code, Copilot will do this for you.
    steps:
      - name: Checkout code
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

      - name: "Set up Micromamba"
        uses: mamba-org/setup-micromamba@add3a49764cedee8ee24e82dfde87f5bc2914462 # v2.0.7
        with:
          environment-name: pytensor-test
          micromamba-version: "1.5.10-0"
          init-shell: bash
          post-cleanup: "none"
          create-args: python=3.13

      - name: "Install dependencies"
        shell: micromamba-shell {0}
        run: |
          micromamba install --yes -q -c conda-forge python=3.13 mkl "numpy>=2.0" scipy pip mkl-service graphviz cython pytest coverage pytest-cov pytest-benchmark pytest-mock pytest-sphinx
          micromamba install --yes -q -c conda-forge "numba>=0.57"
          micromamba install --yes -q -c conda-forge jax jaxlib numpyro equinox
          micromamba install --yes -q -c conda-forge mypy types-setuptools scipy-stubs pandas pre-commit
          pip install tfp-nightly
          pip install -e ./
          pre-commit install --install-hooks
          micromamba list && pip freeze
          python -c 'import pytensor; print(pytensor.config.__str__(print_doc=False))'
          python -c 'import pytensor; assert pytensor.config.blas__ldflags != "", "Blas flags are empty"';
