@@ -51,32 +51,41 @@ jobs:
5151 "include": []
5252 }
5353
54+ // Track languages we've already added to avoid duplicates
55+ const addedLanguages = new Set()
56+
5457 for (let [key, value] of Object.entries(response.data)) {
5558 // remap language
5659 if (remap_languages[key.toLowerCase()]) {
5760 console.log(`Remapping language: ${key} to ${remap_languages[key.toLowerCase()]}`)
5861 key = remap_languages[key.toLowerCase()]
5962 }
60- if (supported_languages.includes(key.toLowerCase())) {
61- console.log(`Found supported language: ${key}`)
63+
64+ const normalizedKey = key.toLowerCase()
65+
66+ if (supported_languages.includes(normalizedKey) && !addedLanguages.has(normalizedKey)) {
67+ // Mark this language as added
68+ addedLanguages.add(normalizedKey)
69+
70+ console.log(`Found supported language: ${normalizedKey}`)
6271 let osList = ['ubuntu-latest'];
63- if (key.toLowerCase() === 'swift') {
72+ if (normalizedKey === 'swift') {
6473 osList = ['macos-latest'];
65- } else if (key.toLowerCase() === 'cpp') {
74+ } else if (normalizedKey === 'cpp') {
6675 // TODO: update macos to latest after the below issue is resolved
6776 // https://github.com/github/codeql-action/issues/2266
6877 osList = ['macos-13', 'ubuntu-latest', 'windows-latest'];
6978 }
7079 for (let os of osList) {
7180 // set name for matrix
72- if (osList.length == 1) {
73- name = key.toLowerCase()
74- } else {
75- name = `${key.toLowerCase()}, ${os}`
76- }
81+ let name = osList.length === 1 ? normalizedKey : `${normalizedKey}, ${os}`
7782
7883 // add to matrix
79- matrix['include'].push({"language": key.toLowerCase(), "os": os, "name": name})
84+ matrix['include'].push({
85+ "language": normalizedKey,
86+ "os": os,
87+ "name": name
88+ })
8089 }
8190 }
8291 }
0 commit comments