NishithP2004 commited on
Commit
e540eb2
·
verified ·
1 Parent(s): 59cee34

Upload folder using huggingface_hub

Browse files
Files changed (2) hide show
  1. server/app.py +4 -1
  2. validate_submission.sh +33 -15
server/app.py CHANGED
@@ -81,4 +81,7 @@ if __name__ == "__main__":
81
  parser = argparse.ArgumentParser()
82
  parser.add_argument("--port", type=int, default=8000)
83
  args = parser.parse_args()
84
- main(port=args.port)
 
 
 
 
81
  parser = argparse.ArgumentParser()
82
  parser.add_argument("--port", type=int, default=8000)
83
  args = parser.parse_args()
84
+ if args.port == 8000:
85
+ main()
86
+ else:
87
+ main(port=args.port)
validate_submission.sh CHANGED
@@ -38,23 +38,35 @@ else
38
  RED='' GREEN='' YELLOW='' BOLD='' NC=''
39
  fi
40
 
 
 
 
41
  run_with_timeout() {
42
- local secs="$1"; shift
 
43
  if command -v timeout &>/dev/null; then
44
  timeout "$secs" "$@"
 
45
  elif command -v gtimeout &>/dev/null; then
46
  gtimeout "$secs" "$@"
47
- else
48
- "$@" &
49
- local pid=$!
50
- ( sleep "$secs" && kill "$pid" 2>/dev/null ) &
51
- local watcher=$!
52
- wait "$pid" 2>/dev/null
53
- local rc=$?
54
- kill "$watcher" 2>/dev/null
55
- wait "$watcher" 2>/dev/null
56
- return $rc
57
  fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  }
59
 
60
  portable_mktemp() {
@@ -133,19 +145,25 @@ if ! command -v docker &>/dev/null; then
133
  stop_at "Step 2"
134
  fi
135
 
 
 
136
  if [ -f "$REPO_DIR/Dockerfile" ]; then
137
- DOCKER_CONTEXT="$REPO_DIR"
138
  elif [ -f "$REPO_DIR/server/Dockerfile" ]; then
139
- DOCKER_CONTEXT="$REPO_DIR/server"
140
  else
141
  fail "No Dockerfile found in repo root or server/ directory"
142
  stop_at "Step 2"
143
  fi
 
144
 
145
- log " Found Dockerfile in $DOCKER_CONTEXT"
 
146
 
147
  BUILD_OK=false
148
- BUILD_OUTPUT=$(run_with_timeout "$DOCKER_BUILD_TIMEOUT" docker build "$DOCKER_CONTEXT" 2>&1) && BUILD_OK=true
 
 
149
 
150
  if [ "$BUILD_OK" = true ]; then
151
  pass "Docker build succeeded"
 
38
  RED='' GREEN='' YELLOW='' BOLD='' NC=''
39
  fi
40
 
41
+ # Run "$@" with a wall-clock limit. Prefer GNU timeout / gtimeout; otherwise poll so we
42
+ # never wait on a background `sleep` after the command exits (macOS fallback used to hang
43
+ # until the full sleep finished if the watcher subshell left sleep orphaned).
44
  run_with_timeout() {
45
+ local secs="$1"
46
+ shift
47
  if command -v timeout &>/dev/null; then
48
  timeout "$secs" "$@"
49
+ return $?
50
  elif command -v gtimeout &>/dev/null; then
51
  gtimeout "$secs" "$@"
52
+ return $?
 
 
 
 
 
 
 
 
 
53
  fi
54
+ "$@" &
55
+ local cmd_pid=$!
56
+ local elapsed=0
57
+ while kill -0 "$cmd_pid" 2>/dev/null; do
58
+ if [ "$elapsed" -ge "$secs" ]; then
59
+ kill -TERM "$cmd_pid" 2>/dev/null
60
+ sleep 1
61
+ kill -KILL "$cmd_pid" 2>/dev/null
62
+ wait "$cmd_pid" 2>/dev/null || true
63
+ return 124
64
+ fi
65
+ sleep 1
66
+ elapsed=$((elapsed + 1))
67
+ done
68
+ wait "$cmd_pid"
69
+ return $?
70
  }
71
 
72
  portable_mktemp() {
 
145
  stop_at "Step 2"
146
  fi
147
 
148
+ # OpenEnv templates often keep the Dockerfile under server/ but COPY expects the
149
+ # environment root (pyproject.toml, uv.lock, models.py). Context must be REPO_DIR.
150
  if [ -f "$REPO_DIR/Dockerfile" ]; then
151
+ DOCKER_FILE="$REPO_DIR/Dockerfile"
152
  elif [ -f "$REPO_DIR/server/Dockerfile" ]; then
153
+ DOCKER_FILE="$REPO_DIR/server/Dockerfile"
154
  else
155
  fail "No Dockerfile found in repo root or server/ directory"
156
  stop_at "Step 2"
157
  fi
158
+ DOCKER_CONTEXT="$REPO_DIR"
159
 
160
+ log " Dockerfile: $DOCKER_FILE"
161
+ log " Build context: $DOCKER_CONTEXT"
162
 
163
  BUILD_OK=false
164
+ BUILD_OUTPUT=$(
165
+ run_with_timeout "$DOCKER_BUILD_TIMEOUT" docker build -f "$DOCKER_FILE" "$DOCKER_CONTEXT" 2>&1
166
+ ) && BUILD_OK=true
167
 
168
  if [ "$BUILD_OK" = true ]; then
169
  pass "Docker build succeeded"