|
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 }} |
|
|
|
|
|
|
|
- name: Install Poetry |
|
run: | |
|
curl -sSL https://install.python-poetry.org | python3 - |
|
|
|
|
|
- name: Add Poetry to PATH |
|
run: echo "$HOME/.local/bin" >> $GITHUB_PATH |
|
|
|
|
|
- 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- |
|
|
|
|
|
- name: Install dependencies |
|
run: poetry install |
|
|
|
|
|
- name: Build package |
|
run: poetry build --format sdist |
|
|
|
|
|
- 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: |
|
- 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 }} |
|
|