From 42d422859598d560c57945f02975fa70c2b47b0f Mon Sep 17 00:00:00 2001 From: Lovell Fuller Date: Mon, 17 Aug 2020 23:00:47 +0100 Subject: [PATCH] Replace prebuild-ci with simple wrapper around prebuild Drop Node.js 13, generate prebuilds for NAPI v3 only --- .travis.yml | 63 ++++++++---------------------------------- appveyor.yml | 8 +++--- install/prebuild-ci.js | 9 ++++++ package.json | 4 +-- 4 files changed, 27 insertions(+), 57 deletions(-) create mode 100644 install/prebuild-ci.js diff --git a/.travis.yml b/.travis.yml index cade3a31..18e3cf2a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ jobs: dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp centos:7 + - sudo docker run -dit --name sharp --env CI --env prebuild_upload --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp centos:7 - sudo docker exec sharp bash -c "curl -sL https://rpm.nodesource.com/setup_10.x | bash -" - sudo docker exec sharp yum install -y gcc-c++ make git nodejs install: sudo docker exec sharp bash -c "npm install --unsafe-perm" @@ -16,29 +16,18 @@ jobs: dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp centos:7 + - sudo docker run -dit --name sharp --env CI --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp centos:7 - sudo docker exec sharp bash -c "curl -sL https://rpm.nodesource.com/setup_12.x | bash -" - sudo docker exec sharp yum install -y gcc-c++ make git nodejs install: sudo docker exec sharp bash -c "npm install --unsafe-perm" script: sudo docker exec sharp bash -c "npm test" - - name: "Linux x64 (CentOS 7, glibc 2.17) - Node.js 13" - os: linux - dist: bionic - language: shell - before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp centos:7 - - sudo docker exec sharp bash -c "curl -sL https://rpm.nodesource.com/setup_13.x | bash -" - - sudo docker exec sharp yum install -y gcc-c++ make git nodejs - install: sudo docker exec sharp bash -c "npm install --unsafe-perm" - script: sudo docker exec sharp bash -c "npm test" - - name: "Linux x64 (CentOS 7, glibc 2.17) - Node.js 14" os: linux dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp centos:7 + - sudo docker run -dit --name sharp --env CI --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp centos:7 - sudo docker exec sharp bash -c "curl -sL https://rpm.nodesource.com/setup_14.x | bash -" - sudo docker exec sharp yum install -y gcc-c++ make git nodejs install: sudo docker exec sharp bash -c "npm install --unsafe-perm" @@ -49,7 +38,7 @@ jobs: dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp node:10.17.0-alpine3.9 # https://github.com/nodejs/docker-node/issues/1158 + - sudo docker run -dit --name sharp --env CI --env prebuild_upload --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp node:10.17.0-alpine3.9 # https://github.com/nodejs/docker-node/issues/1158 - sudo docker exec sharp apk add build-base git python2 --update-cache install: sudo docker exec sharp sh -c "npm install --unsafe-perm" script: sudo docker exec sharp sh -c "npm test" @@ -59,17 +48,7 @@ jobs: dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp node:12.0-alpine - - sudo docker exec sharp apk add build-base git python2 --update-cache - install: sudo docker exec sharp sh -c "npm install --unsafe-perm" - script: sudo docker exec sharp sh -c "npm test" - - - name: "Linux x64 (Alpine 3.11, musl 1.1.20) - Node.js 13" - os: linux - dist: bionic - language: shell - before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp node:13.0-alpine + - sudo docker run -dit --name sharp --env CI --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp node:12.0-alpine - sudo docker exec sharp apk add build-base git python2 --update-cache install: sudo docker exec sharp sh -c "npm install --unsafe-perm" script: sudo docker exec sharp sh -c "npm test" @@ -79,7 +58,7 @@ jobs: dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp node:14.0-alpine + - sudo docker run -dit --name sharp --env CI --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp node:14.0-alpine - sudo docker exec sharp apk add build-base git python2 --update-cache install: sudo docker exec sharp sh -c "npm install --unsafe-perm" script: sudo docker exec sharp sh -c "npm test" @@ -90,7 +69,7 @@ jobs: dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp arm64v8/debian:bullseye + - sudo docker run -dit --name sharp --env CI --env prebuild_upload --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp arm64v8/debian:bullseye - sudo docker exec sharp sh -c "apt-get update && apt-get install -y build-essential git python2 curl" - sudo docker exec sharp sh -c "curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -" - sudo docker exec sharp sh -c "echo 'deb https://deb.nodesource.com/node_10.x buster main' >/etc/apt/sources.list.d/nodesource.list" @@ -104,7 +83,7 @@ jobs: dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp arm64v8/debian:bullseye + - sudo docker run -dit --name sharp --env CI --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp arm64v8/debian:bullseye - sudo docker exec sharp sh -c "apt-get update && apt-get install -y build-essential git python2 curl" - sudo docker exec sharp sh -c "curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -" - sudo docker exec sharp sh -c "echo 'deb https://deb.nodesource.com/node_12.x buster main' >/etc/apt/sources.list.d/nodesource.list" @@ -112,27 +91,13 @@ jobs: install: sudo docker exec sharp sh -c "npm install --unsafe-perm" script: sudo docker exec sharp sh -c "npm test" - - name: "Linux ARM64v8 (Debian 11, glibc 2.29) - Node.js 13" - arch: arm64 - os: linux - dist: bionic - language: shell - before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp arm64v8/debian:bullseye - - sudo docker exec sharp sh -c "apt-get update && apt-get install -y build-essential git python2 curl" - - sudo docker exec sharp sh -c "curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -" - - sudo docker exec sharp sh -c "echo 'deb https://deb.nodesource.com/node_13.x buster main' >/etc/apt/sources.list.d/nodesource.list" - - sudo docker exec sharp sh -c "apt-get update && apt-get install -y nodejs" - install: sudo docker exec sharp sh -c "npm install --unsafe-perm" - script: sudo docker exec sharp sh -c "npm test" - - name: "Linux ARM64v8 (Debian 11, glibc 2.29) - Node.js 14" arch: arm64 os: linux dist: bionic language: shell before_install: - - sudo docker run -dit --name sharp --env CI --env PREBUILD_TOKEN --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp arm64v8/debian:bullseye + - sudo docker run -dit --name sharp --env CI --volume "${PWD}:/mnt/sharp" --workdir /mnt/sharp arm64v8/debian:bullseye - sudo docker exec sharp sh -c "apt-get update && apt-get install -y build-essential git python2 curl" - sudo docker exec sharp sh -c "curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -" - sudo docker exec sharp sh -c "echo 'deb https://deb.nodesource.com/node_14.x buster main' >/etc/apt/sources.list.d/nodesource.list" @@ -151,25 +116,21 @@ jobs: osx_image: xcode10.1 language: node_js node_js: "12" - - - name: "macOS (10.13) - Node.js 13" - os: osx - osx_image: xcode10.1 - language: node_js - node_js: "13" + before_install: unset prebuild_upload - name: "macOS (10.13) - Node.js 14" os: osx osx_image: xcode10.1 language: node_js node_js: "14" + before_install: unset prebuild_upload - name: "Unit test coverage report" os: linux dist: bionic language: node_js node_js: "13" - before_install: unset PREBUILD_TOKEN + before_install: unset prebuild_upload after_success: - npm install coveralls - cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js diff --git a/appveyor.yml b/appveyor.yml index 1c7110eb..8fedf0d3 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,16 +9,16 @@ environment: platform: x64 - nodejs_version: "12" platform: x86 + prebuild_upload: "" - nodejs_version: "12" platform: x64 - - nodejs_version: "13" - platform: x86 - - nodejs_version: "13" - platform: x64 + prebuild_upload: "" - nodejs_version: "14.2.0" platform: x86 + prebuild_upload: "" - nodejs_version: "14" platform: x64 + prebuild_upload: "" install: - ps: Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) $env:platform - npm install diff --git a/install/prebuild-ci.js b/install/prebuild-ci.js new file mode 100644 index 00000000..1a6a2bef --- /dev/null +++ b/install/prebuild-ci.js @@ -0,0 +1,9 @@ +'use strict'; + +const { execFileSync } = require('child_process'); + +const { prebuild_upload: hasToken, APPVEYOR_REPO_TAG_NAME, TRAVIS_TAG } = process.env; + +if (hasToken && (APPVEYOR_REPO_TAG_NAME || TRAVIS_TAG)) { + execFileSync('prebuild', ['--runtime', 'napi', '--target', '3'], { stdio: 'inherit' }); +} diff --git a/package.json b/package.json index 4e04fe62..b6a8fc1f 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "scripts": { "install": "(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)", "clean": "rm -rf node_modules/ build/ vendor/ .nyc_output/ coverage/ test/fixtures/output.*", - "test": "semistandard && cpplint && npm run test-unit && npm run test-licensing && prebuild-ci", + "test": "semistandard && cpplint && npm run test-unit && npm run test-licensing && node install/prebuild-ci", "test-unit": "nyc --reporter=lcov --branches=99 mocha --slow=5000 --timeout=60000 ./test/unit/*.js", "test-licensing": "license-checker --production --summary --onlyAllow=\"Apache-2.0;BSD;ISC;MIT\"", "test-coverage": "./test/coverage/report.sh", @@ -86,6 +86,7 @@ "files": [ "binding.gyp", "install/**", + "!install/prebuild-ci.js", "lib/**", "src/**" ], @@ -132,7 +133,6 @@ "mock-fs": "^4.12.0", "nyc": "^15.1.0", "prebuild": "^10.0.0", - "prebuild-ci": "^3.1.0", "rimraf": "^3.0.2", "semistandard": "^14.2.3" },