Separate CLI and and main flow (#70) #53
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: Ubuntu CI | |
on: [push, pull_request] | |
env: | |
POETRY_VERSION: 1.8.3 | |
jobs: | |
check_skip: | |
runs-on: ubuntu-latest | |
if: | | |
!contains(format('{0} {1} {2}', github.event.head_commit.message, github.event.pull_request.title, github.event.pull_request.body), '[skip ci]') | |
steps: | |
- run: | | |
cat <<'MESSAGE' | |
github.event_name: ${{ toJson(github.event_name) }} | |
github.event: | |
${{ toJson(github.event) }} | |
MESSAGE | |
test: | |
needs: check_skip | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[skip ci]')" | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
steps: | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install poetry | |
uses: abatilo/actions-poetry@v3 | |
with: | |
poetry-version: ${{ env.POETRY_VERSION }} | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install crystalball with testing utilities | |
run: poetry install -E testing | |
- name: Run complete test suite | |
run: poetry run py.test -s -vvv tests/ | |
deploy: | |
needs: [test] | |
runs-on: ubuntu-latest | |
# Run on a push to a tag or master | |
if: > | |
github.event_name == 'push' && | |
(startsWith(github.event.ref, 'refs/tags') || | |
github.event.ref == 'refs/heads/master') | |
steps: | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11 | |
- name: Install latest setuptools, wheel, pip, build | |
run: python3 -m pip install -U pip setuptools wheel build twine | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Build source distribution | |
run: python -m build --sdist | |
- name: Check distributions | |
run: twine check dist/* | |
- name: Check source distribution install runs | |
run: pip install dist/* | |
- name: Publish distribution 📦 to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') | |
with: | |
user: __token__ | |
password: ${{ secrets.pypi_token }} |