3333 with :
3434 github-token : ${{ secrets.GITHUB_TOKEN }}
3535 script : |
36- const workflows = ['test-suite-docker-build.yml'];
36+ const workflows = [
37+ 'coprocessor-db-migration-docker-build.yml',
38+ 'coprocessor-gw-listener-docker-build.yml',
39+ 'coprocessor-host-listener-docker-build.yml',
40+ 'coprocessor-sns-worker-docker-build.yml',
41+ 'coprocessor-tfhe-worker-docker-build.yml',
42+ 'coprocessor-tx-sender-docker-build.yml',
43+ 'coprocessor-zkproof-worker-docker-build.yml',
44+ 'gateway-contracts-docker-build.yml',
45+ 'host-contracts-docker-build.yml',
46+ 'kms-connector-db-migration-docker-build.yml',
47+ 'kms-connector-gw-listener-docker-build.yml',
48+ 'kms-connector-kms-worker-docker-build.yml',
49+ 'kms-connector-tx-sender-docker-build.yml',
50+ 'test-suite-docker-build.yml'
51+ ];
52+
53+ // Map workflow files to component version names
54+ const workflowToImageName = {
55+ 'coprocessor-db-migration-docker-build.yml': 'db_migration_version',
56+ 'coprocessor-gw-listener-docker-build.yml': 'gateway_listener_version',
57+ 'coprocessor-host-listener-docker-build.yml': 'host_listener_version',
58+ 'coprocessor-sns-worker-docker-build.yml': 'sns_worker_version',
59+ 'coprocessor-tfhe-worker-docker-build.yml': 'tfhe_worker_version',
60+ 'coprocessor-tx-sender-docker-build.yml': 'tx_sender_version',
61+ 'coprocessor-zkproof-worker-docker-build.yml': 'zkproof_worker_version',
62+ 'gateway-contracts-docker-build.yml': 'gateway_version',
63+ 'host-contracts-docker-build.yml': 'host_version',
64+ 'kms-connector-db-migration-docker-build.yml': 'connector_db_migration_version',
65+ 'kms-connector-gw-listener-docker-build.yml': 'connector_gw_listener_version',
66+ 'kms-connector-kms-worker-docker-build.yml': 'connector_kms_worker_version',
67+ 'kms-connector-tx-sender-docker-build.yml': 'connector_tx_sender_version',
68+ 'test-suite-docker-build.yml': 'test_suite_version'
69+ };
3770
3871 // Determine target ref
3972 let ref;
@@ -126,9 +159,14 @@ jobs:
126159 const buildSha = recentRun.head_sha;
127160 const tag = buildSha.substring(0, 7);
128161
129- currentBuiltImages.push('test_suite_version');
130- currentImageTag = tag;
131- console.log(` ✅ ${workflowName} built image: test_suite_version with tag: ${tag} (from SHA: ${buildSha})`);
162+ const imageName = workflowToImageName[workflowName];
163+ if (imageName) {
164+ currentBuiltImages.push(imageName);
165+ currentImageTag = tag;
166+ console.log(` ✅ ${workflowName} built image: ${imageName} with tag: ${tag} (from SHA: ${buildSha})`);
167+ } else {
168+ console.log(` ⚠️ ${workflowName} has no image mapping`);
169+ }
132170 } else if (outputJob && outputJob.conclusion === 'failure') {
133171 console.log(` 🔶 ${workflowName} completed but output-build-status indicates no image was built`);
134172 } else {
@@ -239,10 +277,11 @@ jobs:
239277 'zkproof_worker_version': { type: 'coprocessor', index: 6 },
240278 'gateway_version': { type: 'gateway' },
241279 'host_version': { type: 'host' },
242- 'connector_version': { type: 'connector', index: 'all' }, // Special case for all connector components
243- 'test_suite_version': { type: 'test-suite' },
244- 'relayer_version': { type: 'relayer' },
245- 'kms_core_version': { type: 'kms-core' }
280+ 'connector_db_migration_version': { type: 'connector', index: 0 },
281+ 'connector_gw_listener_version': { type: 'connector', index: 1 },
282+ 'connector_tx_sender_version': { type: 'connector', index: 2 },
283+ 'connector_kms_worker_version': { type: 'connector', index: 3 },
284+ 'test_suite_version': { type: 'test-suite' }
246285 };
247286
248287 // Initialize arrays - but only add to inputs if we have actual built images
@@ -253,8 +292,6 @@ jobs:
253292 let hasGatewayBuild = false;
254293 let hasHostBuild = false;
255294 let hasTestSuiteBuild = false;
256- let hasRelayerBuild = false;
257- let hasKmsCoreBuild = false;
258295
259296 // Map built images to components
260297 for (const builtImage of builtImages) {
@@ -274,24 +311,12 @@ jobs:
274311 hasHostBuild = true;
275312 break;
276313 case 'connector':
277- if (mapping.index === 'all') {
278- // Set all 4 connector components: [db_migration, gw_listener, tx_sender, kms_worker]
279- connectorArray.fill(imageTag);
280- hasConnectorBuilds = true;
281- } else {
282- connectorArray[mapping.index] = imageTag;
283- hasConnectorBuilds = true;
284- }
314+ connectorArray[mapping.index] = imageTag;
315+ hasConnectorBuilds = true;
285316 break;
286317 case 'test-suite':
287318 hasTestSuiteBuild = true;
288319 break;
289- case 'relayer':
290- hasRelayerBuild = true;
291- break;
292- case 'kms-core':
293- hasKmsCoreBuild = true;
294- break;
295320 }
296321 } else {
297322 console.log(`⏭️ Skipping ${builtImage} (no component mapping)`);
@@ -300,47 +325,30 @@ jobs:
300325
301326 // Only add inputs for components that were actually built
302327
303- // 1. coprocessor: array of 7 elements - only if at least one coprocessor component was built
304328 if (hasCoprocessorBuilds) {
305329 inputs.coprocessor = JSON.stringify(coprocessorArray);
306330 console.log(`📝 Input 1 - coprocessor: ${inputs.coprocessor}`);
307331 }
308332
309- // 2. gateway: string - only if gateway was built
310333 if (hasGatewayBuild) {
311334 inputs.gateway = imageTag;
312335 console.log(`📝 Input 2 - gateway: ${imageTag}`);
313336 }
314337
315- // 3. host: string - only if host was built
316338 if (hasHostBuild) {
317339 inputs.host = imageTag;
318340 console.log(`📝 Input 3 - host: ${imageTag}`);
319341 }
320342
321- // 4. connector: array of 4 elements - only if at least one connector component was built
322343 if (hasConnectorBuilds) {
323344 inputs.connector = JSON.stringify(connectorArray);
324345 console.log(`📝 Input 4 - connector: ${inputs.connector}`);
325346 }
326347
327- // 5. test-suite: string - only if test-suite was built
328348 if (hasTestSuiteBuild) {
329349 inputs['test-suite'] = imageTag;
330350 console.log(`📝 Input 5 - test-suite: ${imageTag}`);
331351 }
332-
333- // 6. relayer: string - only if relayer was built
334- if (hasRelayerBuild) {
335- inputs.relayer = imageTag;
336- console.log(`📝 Input 6 - relayer: ${imageTag}`);
337- }
338-
339- // 7. kms-core: string - only if kms-core was built
340- if (hasKmsCoreBuild) {
341- inputs['kms-core'] = imageTag;
342- console.log(`📝 Input 7 - kms-core: ${imageTag}`);
343- }
344352
345353 // Determine target ref
346354 let ref;
@@ -351,14 +359,8 @@ jobs:
351359 }
352360
353361 console.log(`🚀 Dispatching E2E tests on ref: ${ref}`);
354- console.log(`📝 Final inputs (${Object.keys(inputs).length}/7 possible):`, inputs);
355-
356- // Always dispatch E2E tests
357- if (Object.keys(inputs).length === 0) {
358- console.log('🔍 No built images found, dispatching E2E tests with all fhevm-cli defaults');
359- } else {
360- console.log(`📊 Dispatching with ${Object.keys(inputs).length} component overrides, others will use fhevm-cli defaults`);
361- }
362+ console.log(`📝 Final inputs (${Object.keys(inputs).length}/5 possible):`, inputs);
363+ console.log(`📊 Dispatching with ${Object.keys(inputs).length} component overrides, others will use fhevm-cli defaults`);
362364
363365 try {
364366 await github.rest.actions.createWorkflowDispatch({
@@ -371,16 +373,11 @@ jobs:
371373
372374 console.log('✅ E2E tests workflow dispatched successfully!');
373375
374- // Log what versions will be used
375- if (Object.keys(inputs).length > 0) {
376- console.log('📋 E2E tests will use these overridden versions:');
377- Object.entries(inputs).forEach(([key, value]) => {
378- console.log(` ${key}: ${value}`);
379- });
380- console.log('📋 All other components will use fhevm-cli defaults');
381- } else {
382- console.log('📋 E2E tests will use all fhevm-cli defaults');
383- }
376+ console.log('📋 E2E tests will use these overridden versions:');
377+ Object.entries(inputs).forEach(([key, value]) => {
378+ console.log(` ${key}: ${value}`);
379+ });
380+ console.log('📋 All other components will use fhevm-cli defaults');
384381
385382 } catch (error) {
386383 console.log(`❌ Failed to dispatch E2E tests: ${error.message}`);
@@ -389,7 +386,7 @@ jobs:
389386 console.log('💡 The E2E workflow rejected some inputs.');
390387 console.log('🔍 This indicates a mismatch between input names.');
391388 console.log('📋 Attempted inputs:', Object.keys(inputs));
392- console.log('📋 Expected inputs: coprocessor, gateway, host, connector, test-suite, relayer, kms-core ');
389+ console.log('📋 Expected inputs: coprocessor, gateway, host, connector, test-suite');
393390 }
394391
395392 core.setFailed(`Failed to dispatch E2E tests: ${error.message}`);
0 commit comments