diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5363ca16..c7eb5ecc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,13 +18,13 @@ jobs: fail-fast: false matrix: include: - - os: ubuntu-20.04 + - os: ubuntu-22.04 arch: x64 build-group: linux-x64 - - os: ubuntu-20.04 - arch: x64 + - os: ubuntu-22.04-arm + arch: arm64 build-group: linux-arm64 - - os: macos-11 + - os: macos-13 arch: x64 build-group: darwin-universal - os: windows-2019 @@ -36,57 +36,44 @@ jobs: env: BUILD_GROUP: ${{ matrix.build-group }} steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: - node-version: '16' + node-version: '20' architecture: ${{ matrix.arch }} - - name: Prebuildify for linux-arm64 - if: ${{ matrix.build-group == 'linux-arm64' }} - uses: pguyot/arm-runner-action@v2 - with: - base_image: raspios_lite_arm64:latest - image_additional_mb: 5000 - copy_artifact_path: prebuilds - commands: | - curl -fsSL https://deb.nodesource.com/setup_16.x | bash - - apt-get -y install nodejs libxtst-dev libpng++-dev - npm ci - npm run prebuild-$BUILD_GROUP - - name: Install linux x64 dependencies - if: ${{ matrix.build-group == 'linux-x64' }} + - name: Install linux dependencies + if: ${{ (matrix.build-group == 'linux-x64') || (matrix.build-group == 'linux-arm64') }} run: sudo apt-get install libxtst-dev libpng++-dev - run: npm ci - if: ${{ matrix.build-group != 'linux-arm64' }} - name: Prebuildify - if: ${{ matrix.build-group != 'linux-arm64' }} run: npm run prebuild-$BUILD_GROUP shell: bash - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: - name: prebuilds + name: prebuilds-${{ matrix.build-group }} path: prebuilds/ if-no-files-found: error publish: name: Publish to npm if: github.event_name == 'push' && github.ref == 'refs/heads/master' - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest needs: build steps: - - uses: actions/checkout@v3 - - uses: actions/download-artifact@v3 + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 with: - name: prebuilds + pattern: prebuilds-* path: prebuilds + merge-multiple: true - uses: phips28/gh-action-bump-version@95099cd5edcdae43499bc94202b9d907e739e9c8 with: tag-prefix: 'v' version-type: 'patch' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: '16' + node-version: '20' registry-url: 'https://registry.npmjs.org' - run: npm publish --access public env: diff --git a/binding.gyp b/binding.gyp index 9c1444a4..5055de28 100644 --- a/binding.gyp +++ b/binding.gyp @@ -1,4 +1,7 @@ { + 'variables': { + 'openssl_fips': '' + }, 'targets': [{ 'target_name': 'robotjs', 'cflags!': [ '-fno-exceptions' ], diff --git a/package-lock.json b/package-lock.json index e268d29b..e4cc6d2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,12 +10,12 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "node-addon-api": "^4.2.0", - "node-gyp-build": "^4.3.0" + "node-addon-api": "^8.3.0", + "node-gyp-build": "^4.8.4" }, "devDependencies": { "jasmine": "^2.99.0", - "prebuildify": "^5.0.0", + "prebuildify": "^6.0.1", "run-script-os": "^1.0.3", "tape": "^4.8.0", "targetpractice": "0.0.7" @@ -558,15 +558,6 @@ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, - "node_modules/execspawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/execspawn/-/execspawn-1.0.1.tgz", - "integrity": "sha1-gob53efOzeeQX73ATiTzaPI/jaY=", - "dev": true, - "dependencies": { - "util-extend": "^1.0.1" - } - }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -1415,14 +1406,19 @@ } }, "node_modules/node-addon-api": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.2.0.tgz", - "integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.0.tgz", + "integrity": "sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } }, "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -1673,12 +1669,12 @@ } }, "node_modules/prebuildify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-5.0.0.tgz", - "integrity": "sha512-XhuFIeZx8Tk8e8yn3h5e+CE572pecpdKPrVubUIW0HctP3fpzh4eSWoHR1eOoQNTtxBUt1ixPLHPLbOTYi6STw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz", + "integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==", "dev": true, + "license": "MIT", "dependencies": { - "execspawn": "^1.0.1", "minimist": "^1.2.5", "mkdirp-classic": "^0.5.3", "node-abi": "^3.3.0", @@ -2424,12 +2420,6 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "node_modules/util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", - "dev": true - }, "node_modules/uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -2931,15 +2921,6 @@ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, - "execspawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/execspawn/-/execspawn-1.0.1.tgz", - "integrity": "sha1-gob53efOzeeQX73ATiTzaPI/jaY=", - "dev": true, - "requires": { - "util-extend": "^1.0.1" - } - }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -3589,14 +3570,14 @@ } }, "node-addon-api": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.2.0.tgz", - "integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.0.tgz", + "integrity": "sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==" }, "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==" }, "normalize-package-data": { "version": "2.5.0", @@ -3787,12 +3768,11 @@ } }, "prebuildify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-5.0.0.tgz", - "integrity": "sha512-XhuFIeZx8Tk8e8yn3h5e+CE572pecpdKPrVubUIW0HctP3fpzh4eSWoHR1eOoQNTtxBUt1ixPLHPLbOTYi6STw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz", + "integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==", "dev": true, "requires": { - "execspawn": "^1.0.1", "minimist": "^1.2.5", "mkdirp-classic": "^0.5.3", "node-abi": "^3.3.0", @@ -4408,12 +4388,6 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=", - "dev": true - }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", diff --git a/package.json b/package.json index 1c034c39..ca72a0d6 100644 --- a/package.json +++ b/package.json @@ -51,12 +51,12 @@ }, "homepage": "https://github.com/jitsi/robotjs", "dependencies": { - "node-addon-api": "^4.2.0", - "node-gyp-build": "^4.3.0" + "node-addon-api": "^8.3.0", + "node-gyp-build": "^4.8.4" }, "devDependencies": { "jasmine": "^2.99.0", - "prebuildify": "^5.0.0", + "prebuildify": "^6.0.1", "run-script-os": "^1.0.3", "tape": "^4.8.0", "targetpractice": "0.0.7"