SWE_Bench_Lite_TaskEnv.kt (75 lines of code) (raw):

import jetbrains.buildServer.configs.kotlin.buildSteps.dockerCommand import jetbrains.buildServer.configs.kotlin.buildSteps.python import jetbrains.buildServer.configs.kotlin.sharedResources import java.io.File fun createTaskEnvBuildType(taskId: String): Task { return Task(taskId) { id("SWE_Bench_Task_Env_$taskId".replace("-", "_")) name = "Task env: $taskId" val instanceImageOrigTag = "latest" val instanceImageOrigName = "sweb.eval.x86_64.$taskId" val instanceImageOrig = "$instanceImageOrigName:$instanceImageOrigTag" requirements { startsWith("teamcity.agent.name", "DemoAgent4Cpu16Gb") moreThan("teamcity.agent.work.dir.freeSpaceMb", "10240") } params { param("instance_id", taskId) param("env.HF_HOME", "%teamcity.build.workingDir%/dataset_cache") param("env.HF_DATASETS_CACHE", "%teamcity.build.workingDir%/dataset_cache/datasets") // param("env.HF_DATASETS_OFFLINE", "1") param("env.HF_HUB_CACHE", "%teamcity.build.workingDir%/dataset_cache") } dependencies { artifacts(SWE_Bench_Lite_Dataset) { buildRule = lastSuccessful() artifactRules = """ dataset_cache.zip!/** => dataset_cache venv.zip!/** => .venv """.trimIndent() } } features { sharedResources { readLock("HuggingFaceConnection") } } steps { python { name = "Extract task data" dockerImage = "python:3.11" command = script { content = File("scripts/extract_task_data.py").readText() } environment = venv { requirementsFile = "" pipArgs = "swebench" } } python { name = "Build Docker image for $taskId" command = module { module = "swebench.harness.prepare_images" scriptArguments = "--instance_ids $taskId --tag $instanceImageOrigTag" } environment = venv { name = "myVenv" requirementsFile = "" pipArgs = "swebench" } } dockerCommand { name = "Save Docker Image for $taskId" commandType = other { subCommand = "save" commandArgs = "-o $taskId.tar $instanceImageOrig" } } } artifactRules = """ $taskId.tar $taskId.json ${taskId}_issue.md ${taskId}_hints.md """.trimIndent() } }