uv-publish-nightly #929
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
run: | | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
- 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 |