@@ -128,28 +128,13 @@ jobs:
128128 name : " test-results-node-${{ matrix.node-version }}-pg-${{ matrix.pg-version }}"
129129 path : ' src/packages/*/junit.xml'
130130
131- - name : Create CI admin user and API key
132- run : |
133- cd src/packages/hub
134- node run/test-create-admin.js > ../../api_key.txt
135- # Validate API key was created
136- if [ ! -s ../../api_key.txt ]; then
137- echo "Error: API key file is empty or missing"
138- exit 1
139- fi
140- API_KEY=$(cat ../../api_key.txt)
141- if ! echo "$API_KEY" | grep -qE '^sk-[A-Za-z0-9]+$'; then
142- echo "Error: Invalid API key format: $API_KEY"
143- exit 1
144- fi
145- echo "API key created successfully"
146- env :
147- PGDATABASE : smc
148- PGUSER : smc
149- PGHOST : localhost
150-
151131 - name : Start CoCalc Hub
152132 run : |
133+ # Create conat password for hub internal authentication
134+ mkdir -p src/data/secrets
135+ echo "test-conat-password-$(date +%s)" > src/data/secrets/conat-password
136+ chmod 600 src/data/secrets/conat-password
137+
153138 cd src/packages/hub
154139 pnpm run hub-project-dev-nobuild > hub.log 2>&1 &
155140 HUB_PID=$!
@@ -168,13 +153,14 @@ jobs:
168153 PGUSER : smc
169154 PGHOST : localhost
170155 COCALC_MODE : single-user
156+ COCALC_TEST_MODE : yes
171157
172158 - name : Wait for hub readiness
173159 run : |
174160 MAX_ATTEMPTS=30
175161 READY=false
176162 for i in $(seq 1 $MAX_ATTEMPTS); do
177- if curl -f --max-time 3 http://localhost:5000/healthcheck; then
163+ if curl -sf --max-time 3 http://localhost:5000/healthcheck > /dev/null ; then
178164 echo "Hub is ready"
179165 READY=true
180166 break
@@ -189,9 +175,54 @@ jobs:
189175 exit 1
190176 fi
191177
178+ - name : Create CI admin user and API key
179+ run : |
180+ cd src/packages/hub
181+ node dist/run/test-create-admin.js > ../../api_key.txt
182+ echo "Contents of api_key.txt:"
183+ cat ../../api_key.txt
184+ echo ""
185+ # Validate API key was created
186+ if [ ! -s ../../api_key.txt ]; then
187+ echo "Error: API key file is empty or missing"
188+ exit 1
189+ fi
190+ API_KEY=$(cat ../../api_key.txt)
191+ if ! echo "$API_KEY" | grep -qE '^sk-[A-Za-z0-9]+$'; then
192+ echo "Error: Invalid API key format: $API_KEY"
193+ exit 1
194+ fi
195+ echo "API key created successfully"
196+ env :
197+ PGDATABASE : smc
198+ PGUSER : smc
199+ PGHOST : localhost
200+
192201 - name : Install uv for cocalc-api tests
193202 run : curl -LsSf https://astral.sh/uv/install.sh | sh && echo "$HOME/.local/bin" >> $GITHUB_PATH
194203
204+ - name : Verify API endpoint is responding
205+ run : |
206+ API_KEY=$(cat src/api_key.txt)
207+ echo "Testing API endpoint with system.ping..."
208+ MAX_ATTEMPTS=30
209+ for i in $(seq 1 $MAX_ATTEMPTS); do
210+ if curl -sf --max-time 5 -u "$API_KEY:" -H 'Content-Type: application/json' \
211+ -d '{"name":"system.ping", "args":[]}' \
212+ http://localhost:5000/api/conat/hub > /dev/null; then
213+ echo "API endpoint is responding"
214+ break
215+ fi
216+ if [ $i -eq $MAX_ATTEMPTS ]; then
217+ echo "API endpoint failed to respond after $MAX_ATTEMPTS attempts"
218+ echo "Hub log tail:"
219+ tail -100 src/packages/hub/hub.log || echo "No log file found"
220+ exit 1
221+ fi
222+ echo "Waiting for API endpoint... ($i/$MAX_ATTEMPTS)"
223+ sleep 3
224+ done
225+
195226 - name : Run cocalc-api tests
196227 run : |
197228 export COCALC_API_KEY=$(cat src/api_key.txt)
0 commit comments