Skip to content

Build and publish Python packages to PyPI #12

Build and publish Python packages to PyPI

Build and publish Python packages to PyPI #12

Workflow file for this run

name: Build and publish Python packages to PyPI
on:
workflow_dispatch:
release:
types:
- published
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.10"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
# Update to use Poetry's cache
cache: 'poetry'
# Install Poetry and add it to PATH
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "$HOME/.local/bin" >> $GITHUB_PATH
# Cache Poetry's dependencies based on the lock file
- name: Set up Poetry cache
uses: actions/cache@v3
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-poetry-
# Install dependencies using Poetry (if any)
- name: Install dependencies
run: poetry install
# Build package using Poetry
- name: Build package
run: poetry build --format sdist
# Upload package as build artifact
- uses: actions/upload-artifact@v3
with:
name: package
path: dist/
publish:
runs-on: ubuntu-latest
needs: build
environment:
name: pypi
url: https://pypi.org/p/gpt-engineer
permissions:
id-token: write
steps:
- name: Collect packages to release
uses: actions/download-artifact@v3
with:
name: package
path: dist/
- name: Publish packages to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}