Вы устали от вручную построения и развертывания пакетов Python в Pypi. Ну вот решение.
Что вам нужно.
- Счет GitHub
- Учетная запись Pypi.
- Packagable Python Project.
- Если вы не знаете, как упаковать проект. Обратитесь здесь
Давайте начнем
- Перейдите к репо, содержащему свой проект Python.
- Нажмите на вкладку Действия. Появится окно.
- Выберите действие Publich Python Package.
- Обратите внимание, что новый файл, который мы комбитываем, находится в папке. Гитуб и внутри папки рабочих процессов.
.github/workflows/python-publish.yml
- Давайте посмотрим код, который является файлом .yaml, содержащий некоторые команды, которые необходимо выполнить.
name: Upload Python Package on: release: types: [created] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Install dependencies run: | python -m pip install --upgrade pip pip install setuptools wheel twine - name: Build and publish env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | python setup.py sdist bdist_wheel twine upload dist/*
- Позвольте мне объяснить линию по линии.
name: Upload Python Package on: release: types: [created]
Имя: «» – это имя рабочего процесса, который вы создаете.
«ON» изображает событие, которое здесь – событие выпуска.
Если мы хотим запустить рабочий процесс каждый раз, когда мы нажимаем код. 👇
on: push: branches : [ master ]
- Здесь событие «push», поэтому каждый раз, когда вы нажимаете код рабочего процесса.
jobs: .....
- Работа говорит о рабочем процессе, что все задания должны быть сделаны, когда рабочий процесс срабатывает.
deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x'
- Запускается, указывает, какую ОС она должна работать.
- Затем шаги – это длинный список работ, которые необходимо сделать.
- Здесь первая работа – настроить Python и
- Имя
означает имя работы работы. Вот набор рабочих мест, работающих в моем пакете.
Затем после настройки Python мы должны установить зависимости.
- name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install -r requirements.txt pip install setuptools wheel twine
Здесь
Беги: |.
это набор команд для выполнения.- Мы обновляем Пип.
- Установка зависимостей в требованиях.
- И мы устанавливаем SetUpewsools, колесо и шпагат.
- SetUptools и колесные для упаковки.
Шпагат предназначен для загрузки пакета в Pypi.
Вот окончательная часть, чтобы построить и публиковать пакет.
- name: Build and publish env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | python setup.py sdist bdist_wheel twine upload dist/*
Env:
Это некоторые переменные среды, которые вам нужны (здесь ваше имя пользователя PYPI и пароль.)- Вы можете перейти к настройкам REPO и добавить секреты, которые могут быть доступны
secrets.envname.
- Вы можете перейти к настройкам REPO и добавить секреты, которые могут быть доступны
В «Run:» вы видите две команды.
- Здесь
python setup.py sdist bdist_wheel
Создает пакет и добавьте его в расчет/папку.
- Здесь
И, наконец, «шпагат загрузки dist/*» загружает распределения на pypi.
Вы также можете настроить тесты, если хотите.
Контакт
Не стесняйтесь электронной почтой я Для найденных ошибок или запросов.
Я буду рад помочь.
Обложка Изображение, сделанное из здесь
Оригинал: “https://dev.to/fredysomy/automate-build-and-deploy-of-python-package-using-github-actions-4655”