Pārlūkot izejas kodu

Better version management (#1313)

* better version management

* Update opendevin/config.py
Robert Brennan 1 gadu atpakaļ
vecāks
revīzija
43214a69a0
3 mainītis faili ar 15 papildinājumiem un 1 dzēšanām
  1. 2 0
      containers/app/Dockerfile
  2. 6 0
      containers/build.sh
  3. 7 1
      opendevin/config.py

+ 2 - 0
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 \

+ 6 - 0
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 \

+ 7 - 1
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,