Skip to content

Adding requirements.txt into MANIFEST.in #403

Adding requirements.txt into MANIFEST.in

Adding requirements.txt into MANIFEST.in #403

Workflow file for this run

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