Skip to content

feat: incremental DockerHub reconciliation with cursor and cooldowns #394

feat: incremental DockerHub reconciliation with cursor and cooldowns

feat: incremental DockerHub reconciliation with cursor and cooldowns #394

Triggered via pull request June 9, 2026 11:29
Status Failure
Total duration 30s
Artifacts

main.yml

on: pull_request
Test Deploy
0s
Test Deploy
✨ Deploy
✨ Deploy
Fit to window
Zoom out
Zoom in

Annotations

4 errors and 2 warnings
🧪 Test
Process completed with exit code 1.
test/dockerImageReconciler.test.ts > DockerImageReconciler (incremental) > honors per-tag dispatch cooldown to prevent re-dispatching: functions/test/dockerImageReconciler.test.ts#L167
AssertionError: expected "spy" to not be called at all, but actually been called 6 times Received: 1st spy call: Array [ Object { "client_payload": Object { "baseOs": "ubuntu", "changeSet": "abc123def456", "editorVersion": "6000.3.17f1", "jobId": "reconciliation-editor-ubuntu-6000.3.17f1-webgl-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "webgl", }, "event_type": "retry_ubuntu_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 2nd spy call: Array [ Object { "client_payload": Object { "baseOs": "windows", "changeSet": "abc123def456", "editorVersion": "6000.3.17f1", "jobId": "reconciliation-editor-windows-6000.3.17f1-base-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "base", }, "event_type": "retry_windows_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 3rd spy call: Array [ Object { "client_payload": Object { "baseOs": "windows", "changeSet": "abc123def456", "editorVersion": "6000.3.17f1", "jobId": "reconciliation-editor-windows-6000.3.17f1-windows-il2cpp-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "windows-il2cpp", }, "event_type": "retry_windows_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 4th spy call: Array [ Object { "client_payload": Object { "baseOs": "windows", "changeSet": "abc123def456", "editorVersion": "6000.3.17f1", "jobId": "reconciliation-editor-windows-6000.3.17f1-universal-windows-platform-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "universal-windows-platform", }, "event_type": "retry_windows_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 5th spy call: Array [ Object { "client_payload": Object { "baseOs": "windows", "changeSet": "abc123def456", "editorVersion": "6000.3.17f1", "jobId": "reconciliation-editor-windows-6000.3.17f1-appletv-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "appletv", }, "event_type": "retry_windows_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 6th spy call: Array [ Object { "client_payload": Object { "baseOs": "windows", "changeSet": "abc123def456", "editorVersion": "6000.3.17f1", "jobId": "reconciliation-editor-windows-6000.3.17f1-android-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "android", }, "event_type": "retry_windows_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] Number of calls: 6 ❯ test/dockerImageReconciler.test.ts:167:37
test/dockerImageReconciler.test.ts > DockerImageReconciler (incremental) > advances cursor and resumes from next version on subsequent cycle: functions/test/dockerImageReconciler.test.ts#L138
AssertionError: expected '6000.4.1f1' not to be '6000.4.1f1' // Object.is equality ❯ test/dockerImageReconciler.test.ts:138:48
test/dockerImageReconciler.test.ts > DockerImageReconciler (incremental) > reports debug when all expected tags present: functions/test/dockerImageReconciler.test.ts#L118
AssertionError: expected "spy" to not be called at all, but actually been called 10 times Received: 1st spy call: Array [ Object { "client_payload": Object { "baseOs": "windows", "jobId": "reconciliation-base-windows-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", }, "event_type": "new_windows_base_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 2nd spy call: Array [ Object { "client_payload": Object { "baseOs": "ubuntu", "jobId": "reconciliation-hub-ubuntu-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", }, "event_type": "new_ubuntu_hub_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 3rd spy call: Array [ Object { "client_payload": Object { "baseOs": "ubuntu", "changeSet": "abc123def456", "editorVersion": "6000.4.10f1", "jobId": "reconciliation-editor-ubuntu-6000.4.10f1-base-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "base", }, "event_type": "retry_ubuntu_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 4th spy call: Array [ Object { "client_payload": Object { "baseOs": "ubuntu", "changeSet": "abc123def456", "editorVersion": "6000.4.10f1", "jobId": "reconciliation-editor-ubuntu-6000.4.10f1-linux-il2cpp-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "linux-il2cpp", }, "event_type": "retry_ubuntu_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 5th spy call: Array [ Object { "client_payload": Object { "baseOs": "ubuntu", "changeSet": "abc123def456", "editorVersion": "6000.4.10f1", "jobId": "reconciliation-editor-ubuntu-6000.4.10f1-windows-mono-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "windows-mono", }, "event_type": "retry_ubuntu_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 6th spy call: Array [ Object { "client_payload": Object { "baseOs": "ubuntu", "changeSet": "abc123def456", "editorVersion": "6000.4.10f1", "jobId": "reconciliation-editor-ubuntu-6000.4.10f1-mac-mono-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "mac-mono", }, "event_type": "retry_ubuntu_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 7th spy call: Array [ Object { "client_payload": Object { "baseOs": "ubuntu", "changeSet": "abc123def456", "editorVersion": "6000.4.10f1", "jobId": "reconciliation-editor-ubuntu-6000.4.10f1-ios-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionMinor": "3.2", "targetPlatform": "ios", }, "event_type": "retry_ubuntu_editor_image_requested", "owner": "unity-ci", "repo": "docker", }, ] 8th spy call: Array [ Object { "client_payload": Object { "baseOs": "ubuntu", "changeSet": "abc123def456", "editorVersion": "6000.4.10f1", "jobId": "reconciliation-editor-ubuntu-6000.4.10f1-android-3.2.2", "repoVersionFull": "3.2.2", "repoVersionMajor": "3", "repoVersionM
🧪 Test
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🛠 Build
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/cache@v4, actions/checkout@v4, actions/setup-node@v4. Actions will be forced to run with Node.js 24 by default starting June 16th, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/