name: Publish strands-mem0 🐍 distribution 📦 to PyPI # Dispatched by release.yml (Release Router) when a release tagged # strands-mem0-v* is published. Can also be dispatched manually to re-publish # a tag. Publishing uses PyPI Trusted Publishing (OIDC), so no API token is # stored; the `strands-mem0` PyPI project must have a trusted publisher # configured for mem0ai/mem0 + this workflow. on: workflow_dispatch: inputs: tag: description: 'Release tag to build and publish (e.g. strands-mem0-v0.1.0)' required: true type: string prerelease: description: 'Unused for PyPI (pre-releases are expressed in the version itself); accepted for router uniformity' required: false type: boolean default: false jobs: build-n-publish: name: Build and publish strands-mem0 📦 to PyPI if: startsWith(inputs.tag, 'strands-mem0-v') runs-on: ubuntu-latest permissions: id-token: write defaults: run: working-directory: integrations/strands-mem0/python steps: - uses: actions/checkout@v4 with: ref: ${{ inputs.tag }} - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install Hatch run: pip install hatch - name: Build a binary wheel and a source tarball run: hatch build --clean - name: Publish distribution 📦 to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: packages-dir: integrations/strands-mem0/python/dist/