Skip to content

Adds the description and show_description options to Choice and… #213

Adds the description and show_description options to Choice and…

Adds the description and show_description options to Choice and… #213

name: Continuous Integration
on:
push:
branches:
- master
tags:
- "*"
pull_request:
# SECRETS
# - PYPI_TOKEN: publishing token for tmbo account, needs to be maintainer of
# tmbo/questionary on pypi
jobs:
quality:
name: Code Quality
runs-on: ubuntu-latest
steps:
- name: Checkout git repository 🕝
uses: actions/checkout@v4
- name: Set up Python 3.11 🐍
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install poetry 🦄
uses: Gr1N/setup-poetry@v8
- name: Load Poetry Cached Libraries ⬇
uses: actions/cache@v3
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: ${{ runner.os }}-poetry-
- name: Install dependencies 🖥
run: poetry install --no-interaction
- name: Lint Code 🎎
run: make lint
- name: Check Types 📚
run: make types
- name: Check Version Numbers 🕸
run: poetry run python scripts/validate_version.py
test:
name: Run Tests
runs-on: ${{ matrix.os }}
timeout-minutes: 10
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.8", "3.9", "3.10", "3.11"]
promttoolkit: [3.*, 2.*]
include:
- promttoolkit: 3.0.29
os: ubuntu-latest
- promttoolkit: 3.0.19
os: ubuntu-latest
steps:
- name: Checkout git repository 🕝
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} 🐍
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry 🦄
uses: Gr1N/setup-poetry@v8
- name: Load Poetry Cached Libraries ⬇
uses: actions/cache@v3
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: ${{ runner.os }}-poetry-
- name: Install dependencies 🖥
run: |
poetry install --no-interaction
poetry run pip install prompt_toolkit==${{ matrix.promttoolkit }}
- name: Test Code 🔍
run: make test
- name: Send Coverage Report 📊
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_SERVICE_NAME: github
COVERALLS_PARALLEL: true
run: poetry run coveralls
post-test:
name: Signal test completion
needs: test
runs-on: ubuntu-latest
container: python:3-slim
steps:
- name: Finished
run: |
pip3 install --upgrade coveralls
coveralls --service=github --finish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
docs:
name: Test Docs
runs-on: ubuntu-latest
steps:
- name: Checkout git repository 🕝
uses: actions/checkout@v4
- name: Set up Python 3.11 🐍
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install poetry 🦄
uses: Gr1N/setup-poetry@v8
- name: Load Poetry Cached Libraries ⬇
uses: actions/cache@v3
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: ${{ runner.os }}-poetry
- name: Install dependencies 🖥
run: poetry install --no-interaction --with=docs
- name: Build docs ⚒️
run: make docs
deploy:
name: Deploy to PyPI
runs-on: ubuntu-latest
# deploy will only be run when there is a tag available
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
needs: [quality, test, docs] # only run after all other stages succeeded
steps:
- name: Checkout git repository 🕝
uses: actions/checkout@v4
- name: Set up Python 3.11 🐍
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install poetry 🦄
uses: Gr1N/setup-poetry@v8
- name: Build ⚒️ Distributions
run: |
poetry build
poetry publish -u __token__ -p ${{ secrets.PYPI_TOKEN }}