Solved emoji copy issue (#352) #262
This file contains 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: 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@v9 | |
- name: Load Poetry Cached Libraries ⬇ | |
uses: actions/cache@v4 | |
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@v9 | |
- name: Load Poetry Cached Libraries ⬇ | |
uses: actions/cache@v4 | |
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@v9 | |
- name: Load Poetry Cached Libraries ⬇ | |
uses: actions/cache@v4 | |
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@v9 | |
- name: Build ⚒️ Distributions | |
run: | | |
poetry build | |
poetry publish -u __token__ -p ${{ secrets.PYPI_TOKEN }} |