a0c8464e58
Build Package / build (ubuntu-latest) (push) Failing after 1s
CodeQL / Analyze (python) (push) Failing after 1s
Core Typecheck / core-typecheck (push) Failing after 1s
Linting / lint (push) Failing after 1s
llama-dev tests / test-llama-dev (push) Failing after 1s
Publish Sub-Package to PyPI if Needed / publish_subpackage_if_needed (push) Has been skipped
Sync Docs to Developer Hub / sync-docs (push) Failing after 0s
Build Package / build (windows-latest) (push) Has been cancelled
138 lines
4.1 KiB
YAML
138 lines
4.1 KiB
YAML
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
|