From 5191638f8eac938c84cb3d64ea18cd0801553ef0 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Sat, 15 Jun 2024 06:02:08 -0700 Subject: [PATCH] Update dependencies and workflows (#2185) --- .github/workflows/docker-build.yml | 25 ++++++++++++++++++++++--- .github/workflows/pre-release.yml | 21 +++++++++++++++++++++ poetry.lock | 8 +++++--- src/backend/base/poetry.lock | 13 ++++++++++++- src/backend/base/pyproject.toml | 1 + 5 files changed, 61 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 68f136b03..49c69740a 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -52,14 +52,33 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push Base Image + - name: Build Docker Image + uses: docker/build-push-action@v5 + id: docker_build + with: + context: . + push: false # Do not push yet + platforms: "linux/amd64,linux/arm64/v8" + file: ${{ matrix.file }} + tags: ${{ needs.setup.outputs.tags }} + - name: Run Container + run: | + docker run -d --name test_container -p 8000:8000 ${{ needs.setup.outputs.tags }} + - name: Wait for Container to Start + run: | + timeout 40 bash -c 'until curl -f http://127.0.0.1:8000/health; do sleep 1; done' || (echo "Server did not start in time" && docker logs test_container && docker stop test_container && docker rm test_container && exit 1) + - name: Stop and Remove Container + run: | + docker stop test_container + docker rm test_container + - name: Push Docker Image + if: success() uses: docker/build-push-action@v5 with: context: . - push: true + push: true # Push only if the tests pass platforms: "linux/amd64,linux/arm64/v8" file: ${{ matrix.file }} - # base_rags if release_type is base, main_tags if release_type is main tags: ${{ needs.setup.outputs.tags }} diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 286a7a921..2b7e3e72c 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -62,6 +62,27 @@ jobs: else make build main=true fi + - name: Test CLI + run: | + if [ "${{ inputs.release_type }}" == "base" ]; then + pip install src/backend/base/dist/*.whl + else + pip install dist/*.whl + fi + langflow run --host 127.0.0.1 --port 7860 & + SERVER_PID=$! + # Wait for the server to start + timeout 40 bash -c 'until curl -f http://127.0.0.1:7860/health; do sleep 1; done' || (echo "Server did not start in time" && kill $SERVER_PID && exit 1) + # Terminate the server + kill $SERVER_PID || (echo "Failed to terminate the server" && exit 1) + sleep 10 # give the server some time to terminate + # Check if the server is still running + if kill -0 $SERVER_PID 2>/dev/null; then + echo "Failed to terminate the server" + exit 1 + else + echo "Server terminated successfully" + fi - name: Publish to PyPI env: POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }} diff --git a/poetry.lock b/poetry.lock index 1b1c418d5..0356ce762 100644 --- a/poetry.lock +++ b/poetry.lock @@ -4393,6 +4393,7 @@ alembic = "^1.13.0" asyncer = "^0.0.5" bcrypt = "4.0.1" cachetools = "^5.3.1" +chardet = "^5.2.0" cryptography = "^42.0.5" docstring-parser = "^0.15" duckdb = "^1.0.0" @@ -4479,13 +4480,13 @@ requests = ">=2,<3" [[package]] name = "litellm" -version = "1.40.13" +version = "1.40.14" description = "Library to easily interface with LLM API providers" optional = false python-versions = "!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3.8" files = [ - {file = "litellm-1.40.13-py3-none-any.whl", hash = "sha256:b95ad1dea43f49804122c3f8a6c9f90ffb1d1d8654887d94aa6f77ed46ba7a5d"}, - {file = "litellm-1.40.13.tar.gz", hash = "sha256:7898a59a2a5c49abe166c857f79eeebe4fa3218cb93879da5f17b640787587cf"}, + {file = "litellm-1.40.14-py3-none-any.whl", hash = "sha256:5faf9e1ca7405ef7623d2fca521aee4e11e6aa4f761fcfcd3830dc485ce53af3"}, + {file = "litellm-1.40.14.tar.gz", hash = "sha256:22ecc4e54afb78eca7a1e17aebf3709260b33efb3a69d85882d4e6553d6e93fa"}, ] [package.dependencies] @@ -4494,6 +4495,7 @@ click = "*" importlib-metadata = ">=6.8.0" jinja2 = ">=3.1.2,<4.0.0" openai = ">=1.27.0" +pydantic = ">=2.0.0,<3.0.0" python-dotenv = ">=0.2.0" requests = ">=2.31.0,<3.0.0" tiktoken = ">=0.7.0" diff --git a/src/backend/base/poetry.lock b/src/backend/base/poetry.lock index 13bc91276..adf1ad968 100644 --- a/src/backend/base/poetry.lock +++ b/src/backend/base/poetry.lock @@ -337,6 +337,17 @@ files = [ [package.dependencies] pycparser = "*" +[[package]] +name = "chardet" +version = "5.2.0" +description = "Universal encoding detector for Python 3" +optional = false +python-versions = ">=3.7" +files = [ + {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, + {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, +] + [[package]] name = "charset-normalizer" version = "3.3.2" @@ -3297,4 +3308,4 @@ local = [] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "72f05330f1e734596d160b45cb68ab2ebf7d0824314bec0566bddb5b2043f4e6" +content-hash = "73dc20fcd3c34d40dd31c9251efc8e2d8d3346f2f1bc18be516acf57c86ce460" diff --git a/src/backend/base/pyproject.toml b/src/backend/base/pyproject.toml index e0c84085f..846a79cdc 100644 --- a/src/backend/base/pyproject.toml +++ b/src/backend/base/pyproject.toml @@ -64,6 +64,7 @@ asyncer = "^0.0.5" pyperclip = "^1.8.2" uncurl = "^0.0.11" sentry-sdk = "^2.5.1" +chardet = "^5.2.0" [tool.poetry.extras]