diff --git a/.github/workflows/test-and-release.yml b/.github/workflows/test-and-release.yml index c930478..0dbdb2d 100644 --- a/.github/workflows/test-and-release.yml +++ b/.github/workflows/test-and-release.yml @@ -63,8 +63,11 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - node-version: [16.x, 18.x, 20.x, 22.x, 24.x] - os: [ubuntu-latest, windows-latest, macos-latest] + node-version: [16.x, 18.x, 20.x, 22.x, 24.x, 26.x] + os: [ubuntu-latest, windows-2022, macos-latest] + exclude: + - node-version: 16.x + os: windows-2022 steps: - uses: actions/checkout@v4 @@ -93,8 +96,14 @@ jobs: run: | $wc = New-Object System.Net.WebClient $wc.DownloadFile("https://github.com/Apollon77/SupportingFiles/raw/master/appveyor/serial/com0com.cer", "com0com.cer") - & 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/CertMgr.exe' /add com0com.cer /s /r localMachine root - & 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/CertMgr.exe' /add com0com.cer /s /r localMachine trustedpublisher + $certMgr = Get-ChildItem 'C:/Program Files (x86)/Windows Kits/10/bin' -Filter CertMgr.exe -Recurse -ErrorAction SilentlyContinue | + Sort-Object FullName -Descending | + Select-Object -First 1 -ExpandProperty FullName + if (-not $certMgr) { + throw "CertMgr.exe was not found under Windows Kits path." + } + & $certMgr /add com0com.cer /s /r localMachine root + & $certMgr /add com0com.cer /s /r localMachine trustedpublisher $wc.DownloadFile("https://github.com/Apollon77/SupportingFiles/raw/master/appveyor/serial/setup_com0com_W7_x64_signed.exe", "setup_com0com_W7_x64_signed.exe") $env:CNC_INSTALL_CNCA0_CNCB0_PORTS="YES" .\setup_com0com_W7_x64_signed.exe /S @@ -117,7 +126,14 @@ jobs: run: | Get-NetIPAddress -AddressFamily IPV6 + - name: Install Dependencies (Windows) + if: runner.os == 'Windows' + env: + GYP_DEFINES: enable_lto=false enable_thin_lto=false lto_jobs= + run: npm ci + - name: Install Dependencies + if: runner.os != 'Windows' run: npm ci - name: Run local tests diff --git a/binding.gyp b/binding.gyp index 42c6552..c14611e 100644 --- a/binding.gyp +++ b/binding.gyp @@ -1,4 +1,31 @@ { + 'target_defaults': { + 'conditions': [ + ['OS=="win"', { + 'msvs_settings': { + 'VCCLCompilerTool': { + 'AdditionalOptions!': [ + '-flto=full', + '-flto=thin' + ] + }, + 'VCLibrarianTool': { + 'AdditionalOptions!': [ + '-flto=full', + '-flto=thin' + ] + }, + 'VCLinkerTool': { + 'AdditionalOptions!': [ + '-flto=full', + '-flto=thin', + '/opt:lldltojobs=2' + ] + } + } + }] + ] + }, 'targets': [ { 'target_name': 'mbus', diff --git a/package-lock.json b/package-lock.json index 535f512..e255404 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "license": "MIT", "dependencies": { "bindings": "^1.5.0", - "nan": "^2.23.0", + "nan": "^2.28.0", "xml2js": "^0.6.2" }, "devDependencies": { @@ -2360,9 +2360,9 @@ "license": "MIT" }, "node_modules/nan": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.0.tgz", - "integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==", + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.28.0.tgz", + "integrity": "sha512-fTsDz99OTq2sVePhGdp4qQhggZFtKr64ZNVyVajRKtMOkJxYekplBh577PiJB12v/D3s2E5cGtOI45LWp6rnLQ==", "license": "MIT" }, "node_modules/node-preload": { @@ -4989,9 +4989,9 @@ "dev": true }, "nan": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.0.tgz", - "integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==" + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.28.0.tgz", + "integrity": "sha512-fTsDz99OTq2sVePhGdp4qQhggZFtKr64ZNVyVajRKtMOkJxYekplBh577PiJB12v/D3s2E5cGtOI45LWp6rnLQ==" }, "node-preload": { "version": "0.2.1", diff --git a/package.json b/package.json index 112f3ba..4e43abc 100644 --- a/package.json +++ b/package.json @@ -31,14 +31,14 @@ "license": "MIT", "dependencies": { "bindings": "^1.5.0", - "nan": "^2.23.0", + "nan": "^2.28.0", "xml2js": "^0.6.2" }, "devDependencies": { "@alcalzone/release-script": "^3.8.0", "@alcalzone/release-script-plugin-license": "^3.7.0", - "mocha": "^11.7.1", "chai": "^4.5.0", + "mocha": "^11.7.1", "nyc": "^17.1.0" } }