diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 65b7a785..efb623d3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -10,9 +10,38 @@ on: workflow_dispatch: jobs: + setup-conda: + name: Setup Conda Environment + runs-on: ubuntu-latest + outputs: + activate: ${{ steps.conda-path.outputs.activate }} + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Miniconda + uses: conda-incubator/setup-miniconda@v2 + with: + auto-update-conda: true + python-version: "3.10" + environment-file: environment.yml + activate-environment: lotus + + - name: Cache Conda Environment + uses: actions/cache@v3 + with: + path: ~/conda_pkgs_dir + key: ${{ runner.os }}-conda-${{ hashFiles('environment.yml') }} + + - name: Output Conda activate command + id: conda-path + run: echo "activate=source activate lotus" >> $GITHUB_ENV + ruff_lint: name: Ruff Lint runs-on: ubuntu-latest + needs: setup-conda steps: - name: Checkout code @@ -23,57 +52,47 @@ jobs: with: python-version: '3.10' - - name: Install dependencies + - name: Install Ruff run: | python -m pip install --upgrade pip pip install ruff==0.7.2 - - name: Run ruff + - name: Run Ruff run: ruff check . mypy: name: Type Check runs-on: ubuntu-latest + needs: setup-conda steps: - name: Checkout code uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - - name: Install dependencies + - name: Activate Conda Environment run: | - conda env create -f environment.yml - conda activate lotus + source activate lotus python -m pip install --upgrade pip pip install mypy==1.13.0 pip install -r requirements.txt pip install -e . - - name: Run mypy + - name: Run Mypy run: mypy lotus/ openai_lm_test: name: OpenAI Language Model Tests runs-on: ubuntu-latest + needs: setup-conda timeout-minutes: 5 steps: - name: Checkout code uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - - name: Install dependencies + - name: Activate Conda Environment run: | - conda env create -f environment.yml - conda activate lotus + source activate lotus python -m pip install --upgrade pip pip install -r requirements.txt pip install -e . @@ -82,7 +101,7 @@ jobs: - name: Set OpenAI API Key run: echo "OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }}" >> $GITHUB_ENV - - name: Run LM tests + - name: Run LM Tests env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} ENABLE_OPENAI_TESTS: true @@ -91,31 +110,25 @@ jobs: ollama_lm_test: name: Ollama Language Model Tests runs-on: ubuntu-latest + needs: setup-conda timeout-minutes: 10 steps: - name: Checkout code uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - - name: Install dependencies + - name: Activate Conda Environment run: | - conda env create -f environment.yml - conda activate lotus + source activate lotus python -m pip install --upgrade pip pip install -r requirements.txt pip install -e . pip install pytest - - name: Start Ollama container + - name: Start Ollama Container run: | docker pull ollama/ollama:latest docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama - # Wait for Ollama server to be ready timeout=30 while ! curl -s http://localhost:11434/ >/dev/null; do if [ $timeout -le 0 ]; then @@ -128,30 +141,24 @@ jobs: done docker exec $(docker ps -q) ollama run llama3.2 - - name: Run LM tests + - name: Run LM Tests env: ENABLE_OLLAMA_TESTS: true run: pytest .github/tests/lm_tests.py - rm_test: name: Retrieval Model Tests runs-on: ubuntu-latest + needs: setup-conda timeout-minutes: 5 steps: - name: Checkout code uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - - name: Install dependencies + - name: Activate Conda Environment run: | - conda env create -f environment.yml - conda activate lotus + source activate lotus python -m pip install --upgrade pip pip install -r requirements.txt pip install -e . @@ -160,7 +167,7 @@ jobs: - name: Set OpenAI API Key run: echo "OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }}" >> $GITHUB_ENV - - name: Run RM tests + - name: Run RM Tests env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} ENABLE_OPENAI_TESTS: true