1717 image :
1818 description : GHCR image name
1919 type : string
20- default : ghcr.io/all-hands-ai /agent-server
20+ default : ghcr.io/openhands /agent-server
2121 platforms :
2222 description : Target platforms
2323 type : string
@@ -121,7 +121,6 @@ jobs:
121121 - name : Checkout PR branch
122122 uses : actions/checkout@v5
123123 with :
124- ref : ${{ github.head_ref }}
125124 fetch-depth : 0
126125
127126 - name : Install uv
@@ -130,7 +129,7 @@ jobs:
130129 version : latest
131130
132131 - name : Install Node.js (for npx)
133- uses : actions/setup-node@v5
132+ uses : actions/setup-node@v6
134133 with :
135134 node-version : 22
136135
@@ -147,10 +146,12 @@ jobs:
147146
148147 build-and-push-image :
149148 name : Build & Push
150- # Run on all commits (push events and pull requests)
149+ # Run on push events and pull requests from the same repository (not forks)
150+ # Fork PRs cannot push to GHCR and would fail authentication
151151 if : >
152152 github.event_name == 'push' ||
153- github.event_name == 'pull_request'
153+ (github.event_name == 'pull_request' &&
154+ !github.event.pull_request.head.repo.fork)
154155 strategy :
155156 fail-fast : false
156157 matrix :
@@ -176,7 +177,7 @@ jobs:
176177 runs-on : ${{ matrix.runner }}
177178
178179 env :
179- IMAGE : ${{ inputs.image != '' && inputs.image || 'ghcr.io/all-hands-ai /agent-server' }}
180+ IMAGE : ${{ inputs.image != '' && inputs.image || 'ghcr.io/openhands /agent-server' }}
180181 BASE_IMAGE : ${{ inputs.base_image != '' && inputs.base_image || matrix.base_image }}
181182 CUSTOM_TAGS : ${{ matrix.name }}
182183 TARGET : binary
@@ -208,7 +209,7 @@ jobs:
208209 id : build
209210 run : |
210211 uv sync --frozen
211- uv run ./openhands/agent_server/docker/build.py
212+ uv run ./openhands-agent-server/openhands /agent_server/docker/build.py
212213
213214 - name : Summary (${{ matrix.name }}) - outputs
214215 run : |
@@ -244,7 +245,7 @@ jobs:
244245 # Run if it's a PR and the matrix job completed (even if some variants failed)
245246 if : github.event_name == 'pull_request' && always() && (needs.build-and-push-image.result == 'success' || needs.build-and-push-image.result ==
246247 ' failure' )
247- runs-on : ubuntu-latest
248+ runs-on : blacksmith-4vcpu- ubuntu-2404
248249 outputs :
249250 build_summary : ${{ steps.consolidate.outputs.build_summary }}
250251 steps :
@@ -316,7 +317,7 @@ jobs:
316317 BUILD_SUMMARY=$(jq -n \
317318 --arg image "$IMAGE" \
318319 --arg short_sha "$SHORT_SHA" \
319- --arg ghcr_url "https://github.com/All-Hands-AI /agent-sdk/pkgs/container/agent-server" \
320+ --arg ghcr_url "https://github.com/OpenHands /agent-sdk/pkgs/container/agent-server" \
320321 --arg all_tags "$ALL_TAGS" \
321322 --argjson variants "$VARIANTS_JSON" \
322323 '{
0 commit comments