From 43214a69a02288ae326c7aa03180698dea6e3be4 Mon Sep 17 00:00:00 2001 From: Robert Brennan Date: Wed, 24 Apr 2024 17:53:49 -0400 Subject: [PATCH] Better version management (#1313) * better version management * Update opendevin/config.py --- containers/app/Dockerfile | 2 ++ containers/build.sh | 6 ++++++ opendevin/config.py | 8 +++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/containers/app/Dockerfile b/containers/app/Dockerfile index bca34285ad..44b39f9ef8 100644 --- a/containers/app/Dockerfile +++ b/containers/app/Dockerfile @@ -1,3 +1,4 @@ +ARG OPEN_DEVIN_BUILD_VERSION=dev FROM node:21.7.2-bookworm-slim as frontend-builder WORKDIR /app @@ -35,6 +36,7 @@ ENV RUN_AS_DEVIN=false ENV USE_HOST_NETWORK=true ENV SSH_HOSTNAME=host.docker.internal ENV WORKSPACE_BASE=/opt/workspace_base +ENV OPEN_DEVIN_BUILD_VERSION=$OPEN_DEVIN_BUILD_VERSION RUN mkdir -p $WORKSPACE_BASE RUN apt-get update -y \ diff --git a/containers/build.sh b/containers/build.sh index 172137c6db..33de89fa19 100755 --- a/containers/build.sh +++ b/containers/build.sh @@ -10,8 +10,12 @@ fi echo -e "Building: $image_name" tags=() + +OPEN_DEVIN_BUILD_VERSION="dev" + cache_tag_base="buildcache" cache_tag="$cache_tag_base" + if [[ -n $GITHUB_REF_NAME ]]; then # check if ref name is a version number if [[ $GITHUB_REF_NAME =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then @@ -20,6 +24,7 @@ if [[ -n $GITHUB_REF_NAME ]]; then tags+=($major_version $minor_version) fi sanitized=$(echo $GITHUB_REF_NAME | sed 's/[^a-zA-Z0-9.-]\+/-/g') + OPEN_DEVIN_BUILD_VERSION=$sanitized cache_tag+="-${sanitized}" tags+=($sanitized) fi @@ -52,6 +57,7 @@ fi docker buildx build \ $args \ + --build-arg OPEN_DEVIN_BUILD_VERSION=$OPEN_DEVIN_BUILD_VERSION \ --cache-to=type=registry,ref=$DOCKER_REPOSITORY:$cache_tag,mode=max \ --cache-from=type=registry,ref=$DOCKER_REPOSITORY:$cache_tag \ --cache-from=type=registry,ref=$DOCKER_REPOSITORY:$cache_tag_base-main \ diff --git a/opendevin/config.py b/opendevin/config.py index ef8e05b8dc..5496517035 100644 --- a/opendevin/config.py +++ b/opendevin/config.py @@ -10,6 +10,12 @@ import logging logger = logging.getLogger(__name__) +DEFAULT_CONTAINER_IMAGE = 'ghcr.io/opendevin/sandbox' +if os.getenv('OPEN_DEVIN_BUILD_VERSION'): + DEFAULT_CONTAINER_IMAGE += ':' + (os.getenv('OPEN_DEVIN_BUILD_VERSION') or '') +else: + DEFAULT_CONTAINER_IMAGE += ':main' + load_dotenv() DEFAULT_CONFIG: dict = { @@ -21,7 +27,7 @@ DEFAULT_CONFIG: dict = { ConfigType.WORKSPACE_MOUNT_REWRITE: None, ConfigType.CACHE_DIR: os.path.join(os.path.dirname(os.path.abspath(__file__)), '.cache'), ConfigType.LLM_MODEL: 'gpt-3.5-turbo-1106', - ConfigType.SANDBOX_CONTAINER_IMAGE: 'ghcr.io/opendevin/sandbox', + ConfigType.SANDBOX_CONTAINER_IMAGE: DEFAULT_CONTAINER_IMAGE, ConfigType.RUN_AS_DEVIN: 'true', ConfigType.LLM_EMBEDDING_MODEL: 'local', ConfigType.LLM_EMBEDDING_DEPLOYMENT_NAME: None,