* uv migration smaller runners, freeze test runs, remove dev, ruff,hatchling, previw, poetry, generates wheel, installs wheel, docker * fix tests and dependency groups * test fixes * test fixing and main * resolve merge conflict * dev + test dependency group * Test * trigger CI * trigger CI * add debugging info * trigger CI * uv for reusable and sdk preview * resolve mc and reformat black * staged-api * mypy * fix fern * prod Dockerfile * model sweep, and project.toml and uvlock * --group test -> --extra dev * remove redundant --extra dev and rename tests to dev * sdk backwards compat install sqlite * install sqlite group for sdk-backwards-compat * install uv on gh runner for cloud-api-integration-tests * stage+publish * pytest asyncio * bug causing pytest package to get removed * try to fix async event loop issues * migrate to --with google-cloud-secret-manager --------- Co-authored-by: Kian Jones <kian@letta.com>
66 lines
2.2 KiB
YAML
66 lines
2.2 KiB
YAML
name: uv-publish-nightly
|
|
on:
|
|
schedule:
|
|
- cron: '35 10 * * *' # 10:35am UTC, 2:35am PST, 5:35am EST
|
|
release:
|
|
types: [published]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
# nightly release check from https://stackoverflow.com/a/67527144
|
|
check-date:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
should_run: ${{ steps.should_run.outputs.should_run }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: print latest_commit
|
|
run: echo ${{ github.sha }}
|
|
- id: should_run
|
|
continue-on-error: true
|
|
name: check latest commit is less than a day
|
|
if: ${{ github.event_name == 'schedule' }}
|
|
run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "::set-output name=should_run::false"
|
|
|
|
build-and-publish-nightly:
|
|
name: Build and Publish to PyPI (nightly)
|
|
if: github.repository == 'letta-ai/letta' # TODO: if the repo org ever changes, this must be updated
|
|
runs-on: ubuntu-latest
|
|
needs: check-date
|
|
steps:
|
|
- name: Check out the repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up python 3.12
|
|
id: setup-python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.12
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v6
|
|
with:
|
|
enable-cache: true
|
|
activate-environment: true
|
|
|
|
- name: Set release version
|
|
run: |
|
|
# Extract the version number from pyproject.toml using awk
|
|
CURRENT_VERSION=$(awk -F '"' '/version =/ { print $2 }' pyproject.toml | head -n 1)
|
|
# Export the CURRENT_VERSION with the .dev and current date suffix
|
|
NIGHTLY_VERSION="${CURRENT_VERSION}.dev$(date +%Y%m%d%H%M%S)"
|
|
# Overwrite pyproject.toml with nightly config
|
|
sed -i "0,/version = \"${CURRENT_VERSION}\"/s//version = \"${NIGHTLY_VERSION}\"/" pyproject.toml
|
|
sed -i 's/name = "letta"/name = "letta-nightly"/g' pyproject.toml
|
|
sed -i "s/__version__ = '.*'/__version__ = '${NIGHTLY_VERSION}'/g" letta/__init__.py
|
|
cat pyproject.toml
|
|
cat letta/__init__.py
|
|
|
|
- name: Build the Python package
|
|
run: uv build
|
|
|
|
- name: Publish the package to PyPI
|
|
env:
|
|
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_TOKEN }}
|
|
run: uv publish
|