Remove auto-removal of duplicated DataFrame index #261
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: PyNeon CI | |
| on: | |
| push: | |
| branches: ["main", "dev"] | |
| pull_request: | |
| branches: ["main", "dev"] | |
| jobs: | |
| format: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # to be able to push changes | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.13" | |
| - name: Install format tools | |
| run: | | |
| pip install ruff isort | |
| - name: Sort imports with isort | |
| run: isort --profile black . | |
| - name: Format code with Ruff | |
| run: ruff format . | |
| - name: Commit changes if any | |
| if: github.event_name == 'push' # only push changes on push events | |
| run: | | |
| git config --local user.email "github-actions[bot]@users.noreply.github.com" | |
| git config --local user.name "github-actions[bot]" | |
| git add . | |
| git commit -m "Format code with isort and ruff" || echo "No changes to commit" | |
| git push | |
| tests: | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| PYTHONFAULTHANDLER: "1" | |
| needs: format # waits until formatting is done | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install test dependencies | |
| run: pip install .[dev] | |
| - name: Run tests | |
| if: matrix.os != 'windows-latest' | |
| run: pytest tests -p no:cacheprovider -p no:faulthandler -p no:unraisableexception | |
| - name: Run tests (Windows, disable MSMF) | |
| if: matrix.os == 'windows-latest' | |
| env: | |
| OPENCV_VIDEOIO_PRIORITY_MSMF: "0" | |
| run: pytest tests -p no:cacheprovider -p no:faulthandler -p no:unraisableexception | |
| build-docs: | |
| runs-on: ubuntu-latest | |
| needs: format # waits until formatting is done | |
| if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.13" | |
| - name: Install Pandoc | |
| run: sudo apt-get install -y pandoc | |
| - name: Install docs dependencies | |
| run: pip install .[doc] | |
| - name: Build Documentation | |
| env: | |
| PYTHONPATH: ${{ github.workspace }} | |
| run: make html | |
| - name: Create .nojekyll file | |
| run: touch build/html/.nojekyll | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: html-docs | |
| path: build/html | |
| - name: Deploy (GitHub Pages) | |
| uses: peaceiris/actions-gh-pages@v3 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_dir: build/html | |
| - name: Clean build folder | |
| run: rm -rf build/* |