Skip to content

Commit

Permalink
fix(CI): split ci into core and exntensions
Browse files Browse the repository at this point in the history
  • Loading branch information
ArslanSaleem committed Jan 9, 2025
1 parent 6d5ddfa commit 71c94a5
Show file tree
Hide file tree
Showing 3 changed files with 168 additions and 161 deletions.
79 changes: 79 additions & 0 deletions .github/workflows/ci-core.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: ci-core

on:
push:
branches: [main]
pull_request:

jobs:
core-tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
python-version: ["3.10", "3.11"]

steps:
- name: Clean up instance space
if: matrix.os != 'windows-latest'
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
df -h
- uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install Poetry (Unix)
if: matrix.os != 'windows-latest'
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo 'export PATH="$HOME/.local/bin:$PATH"' >> $GITHUB_ENV
- name: Install Poetry (Windows)
if: matrix.os == 'windows-latest'
run: |
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
echo "C:\\Users\\runneradmin\\AppData\\Roaming\\Python\\Scripts" >> $env:GITHUB_PATH
- name: Verify Poetry Installation
run: poetry --version

- name: Clear Poetry Cache
run: poetry cache clear pypi --all

- name: Install future
run: pip wheel --use-pep517 "future==0.18.3"

- name: Install dependencies
run: poetry install --all-extras --with dev --verbose

- name: Lint with ruff
run: make format_diff

- name: Spellcheck
run: make spell_check

- name: Run core tests
run: make test_core

- name: Run code coverage
continue-on-error: true
run: |
poetry run coverage run --source=pandasai -m pytest tests
poetry run coverage xml
- name: Report coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
89 changes: 89 additions & 0 deletions .github/workflows/ci-extensions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: ci-extensions

on:
push:
branches: [main]
pull_request:

jobs:
extensions-tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
python-version: ["3.10", "3.11"]

steps:
- name: Clean up instance space
if: matrix.os != 'windows-latest'
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
df -h
- uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install Poetry (Unix)
if: matrix.os != 'windows-latest'
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo 'export PATH="$HOME/.local/bin:$PATH"' >> $GITHUB_ENV
- name: Install Poetry (Windows)
if: matrix.os == 'windows-latest'
run: |
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
echo "C:\\Users\\runneradmin\\AppData\\Roaming\\Python\\Scripts" >> $env:GITHUB_PATH
- name: Verify Poetry Installation
run: poetry --version

- name: Clear Poetry Cache
run: poetry cache clear pypi --all

- name: Install dependencies and test extensions
if: matrix.os != 'windows-latest'
run: |
for ext in extensions/*; do
if [ -d "$ext" ] && [ -f "$ext/pyproject.toml" ]; then
echo "Installing dependencies and running tests for $ext"
(cd "$ext" && poetry install --all-extras --with test --verbose)
(cd "$ext" && poetry run pytest tests/)
fi
done
- name: Run extension tests (Windows)
if: matrix.os == 'windows-latest'
run: |
Get-ChildItem -Path extensions/* -Directory | ForEach-Object {
$testDir = Join-Path $_.FullName "tests"
if (Test-Path $testDir) {
Write-Host "Running tests for $($_.FullName)"
Push-Location $_.FullName
poetry install --all-extras --with test --verbose
poetry run pytest tests/
Pop-Location
}
}
- name: Run code coverage for extensions
continue-on-error: true
run: |
poetry run coverage run --source=extensions -m pytest tests extensions/*/tests
poetry run coverage xml
- name: Report coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
161 changes: 0 additions & 161 deletions .github/workflows/ci.yml

This file was deleted.

0 comments on commit 71c94a5

Please sign in to comment.