diff --git a/.codecov.yml b/.codecov.yml index d55c39d..67924eb 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -12,4 +12,5 @@ coverage: threshold: 2% # the leniency in hitting the target ignore: - - '**/tests/*.py' \ No newline at end of file + - '**/tests/*.py' + - 'test_remote-vector-index-builder/' \ No newline at end of file diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..0bfbc17 --- /dev/null +++ b/.flake8 @@ -0,0 +1,13 @@ +max-line-length = 120 + +extend-ignore = + E203, + W503 +exclude = + .git, + __pycache__, + +# Output formatting +statistics = True +count = True +show-source = True \ No newline at end of file diff --git a/.github/workflows/remote-vector-index-builder/run-tests.yml b/.github/workflows/remote-vector-index-builder/run-tests.yml new file mode 100644 index 0000000..6eae951 --- /dev/null +++ b/.github/workflows/remote-vector-index-builder/run-tests.yml @@ -0,0 +1,56 @@ +name: Run tests for Remote-Vector-Index-Builder + +on: + push: + paths: # Note this is done for folder specific checkouts, reduce CI memory load + - 'remote-vector-index-builder/**' + - 'test_remote-vector-index-builder/**' + pull_request: + paths: # Note this is done for folder specific checkouts, reduce CI memory load + - 'remote-vector-index-builder/**' + - 'test_remote-vector-index-builder/**' + +permissions: + contents: read + +jobs: + run-tests: + name: Run tests for Remote-Vector-Index-Builder + runs-on: ubuntu-latest + if: github.repository == 'opensearch-project/remote-vector-index-builder' + + steps: + # https://github.com/actions/checkout?tab=readme-ov-file#usage + - name: Checkout code + uses: actions/checkout@v4 + with: + # Note this is done for folder specific checkouts, reduce CI memory load + sparse-checkout: | + .github/CODEOWNERS + remote-vector-index-builder + test_remote-vector-index-builder + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -r remote-vector-index-builder/core/requirements.txt + python -m pip install -r test_remote-vector-index-builder/requirements.txt + + - name: Run Linting - flake8 + run: | + python -m flake8 remote-vector-index-builder/ test_remote-vector-index-builder/ + + - name: Run Formatter - black + run: | + python -m black --check remote-vector-index-builder/ test_remote-vector-index-builder/ + + - name: Run Type Checker - mypy + run: | + python -m mypy remote-vector-index-builder/ test_remote-vector-index-builder/ + - name: Run tests + run: | + python -m pytest test_remote-vector-index-builder/ diff --git a/remote-vector-index-builder/core/requirements.txt b/remote-vector-index-builder/core/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/test_remote-vector-index-builder/requirements.txt b/test_remote-vector-index-builder/requirements.txt new file mode 100644 index 0000000..ee9a34e --- /dev/null +++ b/test_remote-vector-index-builder/requirements.txt @@ -0,0 +1,5 @@ +black>=25.1.0,<26.0.0 +flake8>=7.1.0,<8.0.0 +isort>=6.0.0,<7.0.0 +mypy>=1.15.0,<2.0.0 +pytest>=8.0.0,<9.0.0 \ No newline at end of file