Adding requirements.txt into MANIFEST.in #403
Workflow file for this run
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: CI | |
| on: | |
| pull_request: | |
| jobs: | |
| CI: | |
| continue-on-error: true | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-15-intel, macos-latest, windows-latest, ubuntu-latest] | |
| python-version: ["3.9", "3.10", "3.11"] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: "pip" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install -U pip | |
| python -m pip install -U build flake8 pytest | |
| python -m pip install -r requirements.txt | |
| python -m pip install -r test/requirements.txt | |
| - name: Build wheel | |
| run: python -m build --wheel | |
| - name: Show dist contents | |
| run: ls -la dist | |
| shell: bash | |
| - name: Install package from wheel (robust) | |
| shell: bash | |
| run: | | |
| WHEEL="$(python -c "import glob; w=glob.glob('dist/*.whl'); print(w[0] if w else '')")" | |
| if [ -z "$WHEEL" ]; then | |
| echo "No wheel was built. dist contains:" | |
| ls -la dist || true | |
| exit 1 | |
| fi | |
| python -m pip install "$WHEEL" | |
| - name: Run linter | |
| run: | | |
| flake8 setup.py dropbox example test | |
| - name: Run unit tests | |
| run: | | |
| pytest -v test/unit/test_dropbox_unit.py | |
| Docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.9" | |
| cache: "pip" | |
| - name: Install build and doc tooling | |
| run: | | |
| python -m pip install -U pip | |
| python -m pip install build twine sphinx | |
| python -m pip install -r requirements.txt | |
| python -m pip install -r test/requirements.txt | |
| - name: Build sdist and wheel (PEP 517) | |
| run: python -m build | |
| - name: Validate distribution metadata | |
| run: twine check dist/* | |
| - name: Build wheel | |
| run: python -m build --wheel | |
| - name: Install package from wheel | |
| run: | | |
| python -c "import glob,sys; w=glob.glob('dist/*.whl'); assert w, f'No wheel built. dist contains: {glob.glob(\"dist/*\")}'; print(w[0])" | |
| python -c "import glob; print(glob.glob('dist/*.whl')[0])" > wheel_path.txt | |
| python -m pip install "$(cat wheel_path.txt)" | |
| shell: bash | |
| - name: Test documentation generation | |
| run: | | |
| sphinx-build -b html docs build/html | |
| Integration: | |
| continue-on-error: true | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-15-intel, macos-latest, windows-latest, ubuntu-latest] | |
| python-version: ["3.9", "3.10", "3.11"] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: "pip" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install -U pip | |
| python -m pip install -U build | |
| python -m pip install -r requirements.txt | |
| python -m pip install -r test/requirements.txt | |
| python -m pip install -U flake8 pytest | |
| - name: Build and install package (wheel) | |
| run: | | |
| python -m build --wheel | |
| python -m pip install dist/*.whl | |
| - name: Run integration tests | |
| env: | |
| LEGACY_USER_DROPBOX_TOKEN: ${{ secrets.LEGACY_USER_DROPBOX_TOKEN }} | |
| LEGACY_USER_CLIENT_ID: ${{ secrets.LEGACY_USER_CLIENT_ID }} | |
| LEGACY_USER_CLIENT_SECRET: ${{ secrets.LEGACY_USER_CLIENT_SECRET }} | |
| LEGACY_USER_REFRESH_TOKEN: ${{ secrets.LEGACY_USER_REFRESH_TOKEN }} | |
| SCOPED_USER_DROPBOX_TOKEN: ${{ secrets.SCOPED_USER_DROPBOX_TOKEN }} | |
| SCOPED_USER_CLIENT_ID: ${{ secrets.SCOPED_USER_CLIENT_ID }} | |
| SCOPED_USER_CLIENT_SECRET: ${{ secrets.SCOPED_USER_CLIENT_SECRET }} | |
| SCOPED_USER_REFRESH_TOKEN: ${{ secrets.SCOPED_USER_REFRESH_TOKEN }} | |
| SCOPED_TEAM_DROPBOX_TOKEN: ${{ secrets.SCOPED_TEAM_DROPBOX_TOKEN }} | |
| SCOPED_TEAM_CLIENT_ID: ${{ secrets.SCOPED_TEAM_CLIENT_ID }} | |
| SCOPED_TEAM_CLIENT_SECRET: ${{ secrets.SCOPED_TEAM_CLIENT_SECRET }} | |
| SCOPED_TEAM_REFRESH_TOKEN: ${{ secrets.SCOPED_TEAM_REFRESH_TOKEN }} | |
| DROPBOX_SHARED_LINK: ${{ secrets.DROPBOX_SHARED_LINK }} | |
| run: | | |
| pytest -v test/integration/test_dropbox.py |