diff --git a/.github/workflows/pipeline-segment-node-nan-test.yml b/.github/workflows/pipeline-segment-node-nan-test.yml index 59241c4f4ac4..121ee47d1bcd 100644 --- a/.github/workflows/pipeline-segment-node-nan-test.yml +++ b/.github/workflows/pipeline-segment-node-nan-test.yml @@ -152,7 +152,7 @@ jobs: unzip -:o dist.zip - name: Setup Linux for Headless Testing run: sh -e /etc/init.d/xvfb start - - name: Run Node.js Tests + - name: Run Nan Tests run: | cd src node electron/script/nan-spec-runner.js diff --git a/script/nan-spec-runner.js b/script/nan-spec-runner.js index 00e569dbee85..858ab66a0beb 100644 --- a/script/nan-spec-runner.js +++ b/script/nan-spec-runner.js @@ -17,6 +17,14 @@ const args = require('minimist')(process.argv.slice(2), { string: ['only'] }); +const getNodeGypVersion = () => { + const nanPackageJSONPath = path.join(NAN_DIR, 'package.json'); + const nanPackageJSON = JSON.parse(fs.readFileSync(nanPackageJSONPath, 'utf8')); + const { devDependencies } = nanPackageJSON; + const nodeGypVersion = devDependencies['node-gyp']; + return nodeGypVersion || 'latest'; +}; + async function main () { const outDir = utils.getOutDir({ shouldLog: true }); const nodeDir = path.resolve(BASE, 'out', outDir, 'gen', 'node_headers'); @@ -90,7 +98,8 @@ async function main () { env.LDFLAGS = ldflags; } - const { status: buildStatus, signal } = cp.spawnSync(NPX_CMD, ['node-gyp', 'rebuild', '--verbose', '--directory', 'test', '-j', 'max'], { + const nodeGypVersion = getNodeGypVersion(); + const { status: buildStatus, signal } = cp.spawnSync(NPX_CMD, [`node-gyp@${nodeGypVersion}`, 'rebuild', '--verbose', '--directory', 'test', '-j', 'max'], { env, cwd: NAN_DIR, stdio: 'inherit',