@@ -51,32 +51,39 @@ jobs:
51
51
"include": []
52
52
}
53
53
54
+ // Track languages we've already added to avoid duplicates
55
+ const addedLanguages = new Set()
56
+
54
57
for (let [key, value] of Object.entries(response.data)) {
55
58
// remap language
56
59
if (remap_languages[key.toLowerCase()]) {
57
60
console.log(`Remapping language: ${key} to ${remap_languages[key.toLowerCase()]}`)
58
61
key = remap_languages[key.toLowerCase()]
59
62
}
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}`)
62
71
let osList = ['ubuntu-latest'];
63
- if (key.toLowerCase() === 'swift') {
72
+ if (normalizedKey === 'swift') {
64
73
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'];
69
76
}
70
77
for (let os of osList) {
71
78
// 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}`
77
80
78
81
// 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
+ })
80
87
}
81
88
}
82
89
}
0 commit comments