Skip to content

PyPI Release: Production (pinecone) #5

PyPI Release: Production (pinecone)

PyPI Release: Production (pinecone) #5

Workflow file for this run

name: 'PyPI Release: Production (pinecone)'
on:
workflow_dispatch:
inputs:
ref:
description: 'Git ref to build (branch name or SHA)'
required: true
type: string
default: 'main'
releaseLevel:
description: 'Release level'
required: true
type: choice
default: 'patch'
options:
- 'patch' # bug fixes
- 'minor' # new features, backwards compatible
- 'major' # breaking changes
permissions:
contents: write
jobs:
unit-tests:
uses: './.github/workflows/testing-unit.yaml'
secrets: inherit
with:
python_versions_json: '["3.9"]'
create-project:
uses: './.github/workflows/project-setup.yaml'
secrets: inherit
needs:
- unit-tests
integration-tests:
uses: './.github/workflows/testing-integration.yaml'
secrets: inherit
needs:
- unit-tests
- create-project
with:
encrypted_project_api_key: ${{ needs.create-project.outputs.encrypted_project_api_key }}
python_versions_json: '["3.9", "3.13"]'
dependency-tests:
uses: './.github/workflows/testing-dependency.yaml'
secrets: inherit
needs:
- unit-tests
- create-project
with:
encrypted_project_api_key: ${{ needs.create-project.outputs.encrypted_project_api_key }}
install-tests:
uses: './.github/workflows/testing-install.yaml'
secrets: inherit
pypi:
uses: './.github/workflows/publish-to-pypi.yaml'
needs:
- unit-tests
- integration-tests
- dependency-tests
- install-tests
with:
isPrerelease: false
ref: ${{ inputs.ref }}
releaseLevel: ${{ inputs.releaseLevel }}
TWINE_REPOSITORY: 'pypi'
prereleaseSuffix: ''
secrets:
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PROD_PYPI_PUBLISH_TOKEN }}
docs-publish:
uses: './.github/workflows/build-and-publish-docs.yaml'
secrets: inherit
needs:
- pypi
cleanup-project:
if: ${{ always() }}
needs:
- create-project
- integration-tests
- pypi
- docs-publish
uses: './.github/workflows/project-cleanup.yaml'
secrets: inherit
with:
project_id: ${{ needs.create-project.outputs.project_id }}
encrypted_project_api_key: ${{ needs.create-project.outputs.encrypted_project_api_key }}