summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/tools/generate-matrix.js
diff options
context:
space:
mode:
Diffstat (limited to 'remote/test/puppeteer/tools/generate-matrix.js')
-rw-r--r--remote/test/puppeteer/tools/generate-matrix.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/remote/test/puppeteer/tools/generate-matrix.js b/remote/test/puppeteer/tools/generate-matrix.js
new file mode 100644
index 0000000000..1cb65d3491
--- /dev/null
+++ b/remote/test/puppeteer/tools/generate-matrix.js
@@ -0,0 +1,43 @@
+const fs = require('fs');
+
+const data = JSON.parse(fs.readFileSync('./test/TestSuites.json', 'utf-8'));
+
+/**
+ * @param {string} platform
+ * @returns {string}
+ */
+function mapPlatform(platform) {
+ switch (platform) {
+ case 'linux':
+ return 'ubuntu-latest';
+ case 'win32':
+ return 'windows-latest';
+ case 'darwin':
+ return 'macos-latest';
+ default:
+ throw new Error('Unsupported platform');
+ }
+}
+
+const result = [];
+for (const suite of data.testSuites) {
+ for (const platform of suite.platforms) {
+ if (platform === 'linux' && suite.id !== 'firefox-bidi') {
+ for (const node of [14, 16, 18]) {
+ result.push(`- name: ${suite.id}
+ machine: ${mapPlatform(platform)}
+ xvfb: true
+ node: ${node}
+ suite: ${suite.id}`);
+ }
+ } else {
+ result.push(`- name: ${suite.id}
+ machine: ${mapPlatform(platform)}
+ xvfb: ${platform === 'linux'}
+ node: 18
+ suite: ${suite.id}`);
+ }
+ }
+}
+
+console.log(result.join('\n'));