Skip to content

ci(python): Remove Python 3.7 #364

ci(python): Remove Python 3.7

ci(python): Remove Python 3.7 #364

Workflow file for this run

---
name: CI
on: [push, pull_request]
jobs:
test:
name: Unit tests
strategy:
matrix:
python-version: ['3.10']
os: [macos-latest, ubuntu-latest, windows-latest]
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: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -r dev-requirements.txt
- name: run tests
run: python -m pytest --cov=. 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 == 'ladybug-tools'
steps:
- uses: actions/checkout@v2
- name: set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: set up node # we need node for for semantic release
uses: actions/setup-node@v2.1.2
with:
node-version: 14.2.0
- name: install python dependencies
run: |
python -m pip install --upgrade pip
pip install -U .
pip install -r dev-requirements.txt
- name: install semantic-release
run:
npm install @semantic-release/exec
- 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 }}
- name: sleep for 10 minutes for PyPI update
if: contains(steps.new_release.outputs.tag, '.')
run: sleep 600s
shell: bash
- name: Update dragonfly-core
if: contains(steps.new_release.outputs.tag, '.')
env:
DISPATCH_REPO: ladybug-tools/dragonfly-core
DEPS_TOKEN: ${{ secrets.DEPS_UPDATING }}
run: |
curl -X POST https://api.github.com/repos/$DISPATCH_REPO/dispatches \
-H "Accept: application/vnd.github.everest-preview+json" \
-d '{"event_type": "dragonfly_schema_release", "client_payload": {"version": "${{ steps.new_release.outputs.tag }}"}}' \
-u ladybugbot:$DEPS_TOKEN
- name: Update dragonfly-schema-dotnet
if: contains(steps.new_release.outputs.tag, '.')
env:
DISPATCH_REPO: ladybug-tools/dragonfly-schema-dotnet
DEPS_TOKEN: ${{ secrets.DEPS_UPDATING }}
run: |
curl -X POST https://api.github.com/repos/$DISPATCH_REPO/dispatches \
-H "Accept: application/vnd.github.everest-preview+json" \
-d '{"event_type": "dragonfly_schema_release", "client_payload": {"version": "${{ steps.new_release.outputs.tag }}"}}' \
-u ladybugbot:$DEPS_TOKEN
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 == 'ladybug-tools' && contains(needs.deploy.outputs.tag, '.') }}
steps:
- uses: actions/checkout@v2
- name: set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: set up node # we need node for for redocly
uses: actions/setup-node@v2.1.2
with:
node-version: 14.2.0
- name: install semantic-release
run:
npm install -g redoc-cli@0.13.16
- name: install python dependencies
run: |
pip install -U .
pip install -r dev-requirements.txt
- name: generate docs
run: |
python docs.py --version ${{needs.deploy.outputs.tag}}
redoc-cli bundle ./docs/model_redoc.json -o ./docs/model.html
- 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/
force_orphan: true
keep_files: false
full_commit_message: 'deploy: update docs'