Skip to content

Commit bd13239

Browse files
tawadaaeudelins-zama
authored andcommitted
ci(test-suite): add remaining docker-build wf to trigger build
1 parent 9f4c350 commit bd13239

File tree

1 file changed

+57
-60
lines changed

1 file changed

+57
-60
lines changed

.github/workflows/test-suite-orchestrate-e2e-tests.yml

Lines changed: 57 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,40 @@ jobs:
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

Comments
 (0)