Skip to content

Release 0.14.21

Release 0.14.21 #847

Workflow file for this run

name: Publish packages
on:
workflow_dispatch:
pull_request:
types:
- closed
branches:
- main
permissions:
contents: write
id-token: write
attestations: write
jobs:
publish-core:
if: github.repository == 'run-llama/llama_index' && (github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true && github.event.pull_request.head.ref == vars.RELEASE_BRANCH_NAME))
runs-on: ubuntu-latest
outputs:
version: ${{ steps.build-publish-core.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install uv and set python version
uses: astral-sh/setup-uv@v7
with:
python-version: "3.10"
- name: Install core dependencies
working-directory: llama-index-core
run: |
uv sync
- name: Populate nltk/tiktoken cache
working-directory: llama-index-core
run: |
uv run python -c "from llama_index.core.utils import globals_helper; print(globals_helper.stopwords); print(globals_helper.punkt_tokenizer)"
uv run python -c "from llama_index.core.utils import get_tokenizer; print(get_tokenizer())"
uv run python -c "from llama_index.core.utils import get_tokenizer; print(get_tokenizer('gpt-5-mini'))"
- name: Generate build provenance attestations
uses: actions/attest-build-provenance@v4
id: attest
with:
subject-path: "llama-index-core/llama_index/core/_static/**/*"
- name: Ensure tests pass
working-directory: llama-index-core
run: |
uv run pytest tests
- name: Build and publish llama-index-core
working-directory: llama-index-core
run: |
uv sync
uv build
uv publish --token ${{ secrets.LLAMA_INDEX_PYPI_TOKEN }}
- name: Check PyPI is ready
working-directory: llama-dev
timeout-minutes: 5
run: |
until uv run -- llama-dev --repo-root .. release check
do
echo "Check failed. Retrying in 10 seconds..."
sleep 10
done
notify-workflows-py:
name: Trigger llama-index-core bump in workflows-py
runs-on: ubuntu-latest
needs: publish-core
steps:
- name: Generate GitHub App Token
id: app-token
uses: actions/create-github-app-token@v3
with:
app-id: ${{ secrets.CI_BOT_APP_ID }}
private-key: ${{ secrets.CI_BOT_PRIVATE_KEY }}
owner: run-llama
- name: Trigger repository_dispatch
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ steps.app-token.outputs.token }}
repository: run-llama/workflows-py
event-type: llama-index-core-release
build-n-publish:
name: Build and publish 'llama-index' to PyPI
runs-on: ubuntu-latest
needs: publish-core
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install uv and set python version
uses: astral-sh/setup-uv@v7
with:
python-version: "3.10"
- name: Get version
id: get_version
working-directory: llama-dev
run: |
VERSION=$(uv run -- llama-dev --repo-root .. pkg info --json . | jq -r .version)
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Install deps
shell: bash
run: uv sync
- name: Build and publish to pypi
run: |
uv sync
uv build
uv publish --token ${{ secrets.LLAMA_INDEX_PYPI_TOKEN }}
- name: Generate Release Notes
uses: CSchoel/release-notes-from-changelog@v1
with:
version: "$(date +'%Y-%m-%d')"
begin-pattern: "/^## \\[$(date +'%Y-%m-%d')\\]/"
end-pattern: "/^## \\[/"
working-directory: "."
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "v${{ steps.get_version.outputs.version }}" \
--title "v${{ steps.get_version.outputs.version }}" \
--notes-file RELEASE.md \
dist/*.tar.gz