Skip to content

Add an ability to attach files to requests (#32) #41

Add an ability to attach files to requests (#32)

Add an ability to attach files to requests (#32) #41

Workflow file for this run

name: Publish to PyPI
on:
push:
tags:
- '*'
branches:
- main
jobs:
flake8:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: poetry
- name: Install dependencies
run: poetry install --all-extras
- name: Run Flake8
run: poetry run flake8 src/declarativex/
pylint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: poetry
- name: Install dependencies
run: poetry install --all-extras
- name: Run Pylint
run: poetry run pylint src/declarativex/
mypy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: poetry
- name: Install dependencies
run: poetry install --all-extras
- name: Run Mypy
run: poetry run mypy src/declarativex/
pytest:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]
pydantic-version: [">=1,<2", ">=2,<3"]
fail-fast: false
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: poetry
- name: Install dependencies
run: poetry install --all-extras
- name: Install Pydantic
run: poetry add "pydantic${{ matrix.pydantic-version }}"
- name: Run Pytest
run: poetry run pytest -n 6 tests/
build-and-publish:
if: startsWith(github.ref, 'refs/tags/')
needs: [flake8, pylint, mypy, pytest]
runs-on: ubuntu-latest
environment: production
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Poetry
run: pipx install poetry
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: poetry
- name: Install dependencies
run: poetry install --all-extras
- name: Set version in pyproject.toml
run: |
TAG_NAME=${GITHUB_REF#refs/tags/}
sed -i "s/version = \".*\"/version = \"$TAG_NAME\"/g" pyproject.toml
TAG_NAME=$(echo "$TAG_NAME" | sed 's/^v//')
sed -i 's/__version__ = ".*"/__version__ = "'"$TAG_NAME"'"/g' src/declarativex/__init__.py
- name: Define PyPI token
run: poetry config pypi-token.pypi ${{ secrets.POETRY_PYPI_TOKEN }}
- name: Build and publish to PyPI
run: poetry publish --build
publish-docs:
needs: [build-and-publish]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v3
with:
key: mkdocs-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-
- run: pip install mkdocs-material markdown-include mkdocs-exclude-search pillow cairosvg
- run: mkdocs gh-deploy --force