Рубрики
Без рубрики

Автоматизация сборки и развертывания пакета Python с использованием действий GitHub.

Вы устали от вручную построения и развертывания пакетов Python в Pypi. Ну вот решение …. Помечено Github, Python, WaterCoole, DevOps.

Вы устали от вручную построения и развертывания пакетов 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.
  • В «Run:» вы видите две команды.

    • Здесь python setup.py sdist bdist_wheel Создает пакет и добавьте его в расчет/папку.
  • И, наконец, «шпагат загрузки dist/*» загружает распределения на pypi.

  • Вы также можете настроить тесты, если хотите.

Контакт

  • Не стесняйтесь электронной почтой я Для найденных ошибок или запросов.

  • Я буду рад помочь.

  • Обложка Изображение, сделанное из здесь

Оригинал: “https://dev.to/fredysomy/automate-build-and-deploy-of-python-package-using-github-actions-4655”