@@ -51,32 +51,39 @@ 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') {
66- // TODO: update macos to latest after the below issue is resolved
67- // https://github.com/github/codeql-action/issues/2266
68- osList = ['macos-13', 'ubuntu-latest', 'windows-latest'];
74+ } else if (normalizedKey === 'cpp') {
75+ osList = ['macos-latest', 'ubuntu-latest', 'windows-latest'];
6976 }
7077 for (let os of osList) {
7178 // set name for matrix
72- if (osList.length == 1) {
73- name = key.toLowerCase()
74- } else {
75- name = `${key.toLowerCase()}, ${os}`
76- }
79+ let name = osList.length === 1 ? normalizedKey : `${normalizedKey}, ${os}`
7780
7881 // add to matrix
79- matrix['include'].push({"language": key.toLowerCase(), "os": os, "name": name})
82+ matrix['include'].push({
83+ "language": normalizedKey,
84+ "os": os,
85+ "name": name
86+ })
8087 }
8188 }
8289 }
0 commit comments