Skip to content

ci(python version): set up version matrix correctly #929

ci(python version): set up version matrix correctly

ci(python version): set up version matrix correctly #929

Workflow file for this run

---
name: CI
on: [push, pull_request]
jobs:
test:
name: Unit tests
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
python-version: ["3.7.17", "3.8", "3.9", "3.10", "3.11", "3.12"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: install python dependencies
run: |
bash scripts/install-poetry.sh
poetry install
- name: run tests
run: python -m pytest --cov=queenbee tests/
- name: run test coverage
run: |
echo "Coveralls is no longer supported"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy:
name: Deploy to GitHub and PyPI
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/master' && github.repository_owner == 'pollination'
steps:
- uses: actions/checkout@v2
- name: set up Python
uses: actions/setup-python@v2
with:
python-version: 3.12
- name: set up node # we need node for for semantic release
uses: actions/[email protected]
with:
node-version: 14.2.0
- name: install python dependencies
run: |
bash scripts/install-poetry.sh
poetry install --extras cli
- name: install semantic-release
run: npm install @semantic-release/exec
- name: generate queenbee schemas
run: python scripts/gen_schemas.py
- name: run semantic release
id: new_release
run: |
nextRelease="`npx semantic-release@^17.0.0 --dryRun | grep -oP 'Published release \K.*? ' || true`"
npx semantic-release@^17.0.0
echo "::set-output name=tag::$nextRelease"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
outputs:
tag: ${{ steps.new_release.outputs.tag }}
docs:
name: Generate docs
runs-on: ubuntu-latest
needs: deploy
if: ${{ github.ref == 'refs/heads/master' && github.repository_owner == 'pollination' && contains(needs.deploy.outputs.tag, '.') }}
steps:
- uses: actions/checkout@v2
- name: set up Python
uses: actions/setup-python@v2
with:
python-version: 3.12
- name: install dependencies
run: |
bash scripts/install-poetry.sh
poetry install --extras cli
- name: build docs
run: |
python gen_schemas.py --version ${{needs.deploy.outputs.tag}}
sphinx-apidoc -f -e -d 4 -o ./docs/modules ./queenbee
sphinx-build -b html ./docs ./docs/_build
- name: deploy to github pages
uses: peaceiris/actions-gh-pages@v3
with:
# this will use ladybugbot token
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: docs/_build/
force_orphan: true
keep_files: false
full_commit_message: "deploy: update docs"