/main/
Как я деплою Python-пакеты
Привет, Мир! Хочу поделиться, как я катаю пакеты Python и как всё удобно настроено.
Входные данные:
- код я храню на gitverse
- использую pdm для питона
- использую mkdocstings
- имею воркфлоу, запускающийся при создании нового релиза
- пакет заливается на pypi
- дока заливается на хостинг
Мой workflow во время создания релиза выглядит так:
name: Publish CI/CD Pipeline
on:
release:
types: [published]
jobs:
pypi-publish:
name: upload release to PyPI
runs-on: ubuntu-latest
permissions:
# This permission is needed for private repositories.
contents: read
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: pdm-project/setup-pdm@v4
- name: Publish package distributions to PyPI
run: pdm publish -u ${{ secrets.PYPI_USERNAME }} -P ${{ secrets.PYPI_PASSWORD }} --skip-existing
- name: Show ls
run: ls -lah
- name: Build docs
run: mkdocs build
- name: Publish docs
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
with:
server: ${{ secrets.timeweb_host }}
username: ${{ secrets.timeweb_username }}
password: ${{ secrets.timeweb_password }}
local-dir: ./site/
server-dir: /statement-reader/public_html/
Затем я просто создаю в интерфейсе gitverse тег+релиз и иду пить чай!
date: 25.07.2025
/main/