github actions 으로 pypi 패키지 배포 자동화하기

김예신·2024년 1월 31일
0

이지피클링🥒

목록 보기
2/2
post-thumbnail

EZPKL

저번에 시작했던 ezpkl 패키지 만들기.
문미에 간단하게 해야 할 일을 적어두었는데,

코드는 초안으로 완성해서 기본 함수인 save_pkl, load_pkl 두 개의 함수를 사용할 수 있게 되었다. (만관잘부🐶)
README는 makereadme닷컴을 통해 간단하게 한국어로 작성했다.
타 언어를 추가하는 것도 해야 할 일에 추가하는 것으로.

자동배포

참고한 요 글에서는 API-KEY를 github에 등록해 사용했지만 위 내용을 발견한 나는 다른 방법을 사용해보기로 했다.

Workflows file 작성하기

.github/workflows 경로에 publish.yml 파일을 작성해준다.
(-> workflow라고 오타냈다가 한참 왜 안 되나 고전했음😭)

  • example
    • 아래 예시는 태그가 push 되는 것이 조건임
    • 태그에 v를 붙여주고 싶어서 v1.0.0 이면 1.0.0을 추출 할 수 있도록 함.
    • 자세한 내용은 위의 참고한 글이나 pypi 공식문서를 참고(References)

name: Publish Python 🐍 distributions 📦 to PyPI

on:
  push:
    tags:
      - '*'

jobs:
  pypi-publish:
    name: upload release to PyPI
    runs-on: ubuntu-latest
    # Specifying a GitHub environment is optional, but strongly encouraged
    environment: release
    permissions:
      # IMPORTANT: this permission is mandatory for trusted publishing
      id-token: write
    steps:
      - uses: actions/checkout@v3
      # retrieve your distributions here
      - name: Set up Python
        uses: actions/setup-python@v3
        with:
          python-version: '3.x'

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install setuptools wheel twine

      - name: Extract tag name
        id: tag
        run: echo ::set-output name=TAG_NAME::${GITHUB_REF#refs/tags/}

      - name: Update version in setup.py
        run: |
          VERSION=${{ steps.tag.outputs.TAG_NAME }}
          VERSION=${VERSION#v}
          sed -i "s/{{VERSION_PLACEHOLDER}}/$VERSION/g" setup.py

      - name: Build and publish
        run: |
          python setup.py sdist bdist_wheel

      - name: Publish package distributions to PyPI
        uses: pypa/gh-action-pypi-publish@release/v1

setup.py 파일 수정

tags에서 추출한 버전을 패키지를 배포할 때 넣어줄 것이기 때문에 setup.py에 version을 위와 같이 수정해준다.

pypi 패키지에 퍼블리셔 추가하기

publish 하기위한 모든 파일을 작성했다면 publisher를 패키지에 추가해주기만 하면 된다.
마찬가지로 공식문서에 매우 친절히 나와 있다.

왼쪽 메뉴에 있는 Publishing을 눌러서 몇번 내리다보면 publisher를 등록할 수 있는 양식이 있다.


요구하는 대로 채워주고 나면 아래처럼 초록색이 띵동 뜨면서 퍼블리셔 추가 완료 XD



등록된 publisher도 확인할 수 있음!

배포하기

아래의 명령어로 태그를 등록 및 푸쉬해주면 파일에 작성된대로 트리거가 발동하면서 패키징 및 배포가 완료된다!

git tag v1.0.0			# add tag
git push origin v1.0.0		# push tag


대충 이런 단계들을 거침.

나머지 해야 할 일

  • 테스트 코드 짜기
  • REAMDE 내용 추가 및 이미지 수정
  • 영어 README 작성

References

profile
life is dancing

0개의 댓글