Fix #3316: Add Electron 10.x

This commit is contained in:
Alexandre Lissy 2020-09-10 08:50:59 +02:00
parent dda2d22310
commit a4d6c672d4
19 changed files with 230 additions and 14 deletions

View File

@ -47,13 +47,13 @@ configure: deepspeech_wrap.cxx package.json npm-dev
PATH="$(NODE_MODULES_BIN):${PATH}" $(NODE_BUILD_TOOL) configure $(NODE_BUILD_VERBOSE)
build: configure deepspeech_wrap.cxx
PATH="$(NODE_MODULES_BIN):${PATH}" AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(RPATH_NODEJS) $(LDFLAGS)" LIBS=$(LIBS) $(NODE_BUILD_TOOL) $(NODE_PLATFORM_TARGET) $(NODE_RUNTIME) $(NODE_ABI_TARGET) $(NODE_DIST_URL) --no-color rebuild $(NODE_BUILD_VERBOSE)
PATH="$(NODE_MODULES_BIN):${PATH}" AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(RPATH_NODEJS) $(LDFLAGS)" LIBS=$(LIBS) $(NODE_BUILD_TOOL) $(NODE_PLATFORM_TARGET) $(NODE_RUNTIME) $(NODE_ABI_TARGET) $(NODE_DEVDIR) $(NODE_DIST_URL) --no-color rebuild $(NODE_BUILD_VERBOSE)
copy-deps: build
$(call copy_missing_libs,lib/binding/*/*/*/deepspeech.node,lib/binding/*/*/)
node-wrapper: copy-deps build
PATH="$(NODE_MODULES_BIN):${PATH}" $(NODE_BUILD_TOOL) $(NODE_PLATFORM_TARGET) $(NODE_RUNTIME) $(NODE_ABI_TARGET) $(NODE_DIST_URL) --no-color package $(NODE_BUILD_VERBOSE)
PATH="$(NODE_MODULES_BIN):${PATH}" $(NODE_BUILD_TOOL) $(NODE_PLATFORM_TARGET) $(NODE_RUNTIME) $(NODE_ABI_TARGET) $(NODE_DEVDIR) $(NODE_DIST_URL) --no-color package $(NODE_BUILD_VERBOSE)
npm-pack: clean package.json index.ts npm-dev
PATH="$(NODE_MODULES_BIN):${PATH}" tsc && $(NPM_TOOL) pack $(NODE_BUILD_VERBOSE)

View File

@ -63,8 +63,8 @@ nodejs:
prep_14: '/usr/bin/wget.exe https://nodejs.org/dist/v14.3.0/node-v14.3.0-win-x64.zip && ""C:\Program Files\7-zip\7z.exe"" x -o$TASKCLUSTER_NODE_DIR -tzip -aoa node-v14.3.0-win-x64.zip && rm node-*.zip && export PATH=$TASKCLUSTER_TASK_DIR/bin/node-v14.3.0-win-x64/:$PATH'
system:
node_gyp_cache:
url: 'https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.node-gyp-cache.8/artifacts/public/node-gyp-cache.tar.gz'
namespace: 'project.deepspeech.node-gyp-cache.8'
url: 'https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.node-gyp-cache.10/artifacts/public/node-gyp-cache.tar.gz'
namespace: 'project.deepspeech.node-gyp-cache.10'
homebrew_builds:
url: 'https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.homebrew_builds.8/artifacts/public/homebrew_builds.tar.gz'
namespace: 'project.deepspeech.homebrew_builds.8'

View File

@ -13,23 +13,27 @@ npm install node-gyp@6.x
export PATH=$HOME/node_modules/.bin/:$PATH
devDir=$DS_ROOT_TASK/node-gyp-cache/
nodejsDevDir=${devDir}/nodejs/
electronjsDevDir=${devDir}/electronjs/
mkdir -p ${devDir}
node-gyp list ${devDir}
mkdir -p ${nodejsDevDir} ${electronjsDevDir}
node-gyp list ${nodejsDevDir} ${electronjsDevDir}
for node in ${SUPPORTED_NODEJS_BUILD_VERSIONS}; do
node-gyp install --devdir ${devDir} \
node-gyp install --devdir ${nodejsDevDir} \
--target=$node
mkdir ${devDir}/${node}/x64/ || true
curl -sSL https://nodejs.org/dist/v${node}/win-x64/node.lib -o ${devDir}/${node}/x64/node.lib
mkdir ${nodejsDevDir}/${node}/x64/ || true
curl -sSL https://nodejs.org/dist/v${node}/win-x64/node.lib -o ${nodejsDevDir}/${node}/x64/node.lib
done;
mkdir -p ${electronjsDevDir}
node-gyp list ${electronjsDevDir}
for electron in ${SUPPORTED_ELECTRONJS_VERSIONS}; do
node-gyp install --devdir ${devDir} \
node-gyp install --devdir ${electronjsDevDir} \
--target=$electron \
--disturl=https://electronjs.org/headers \
--runtime=electron
mkdir ${devDir}/${electron}/x64/ || true
curl -sSL https://electronjs.org/headers/v${electron}/win-x64/node.lib -o ${devDir}/${electron}/x64/node.lib
mkdir ${electronjsDevDir}/${electron}/x64/ || true
curl -sSL https://electronjs.org/headers/v${electron}/win-x64/node.lib -o ${electronjsDevDir}/${electron}/x64/node.lib
done;

View File

@ -89,4 +89,4 @@ SUPPORTED_PYTHON_VERSIONS=${SUPPORTED_PYTHON_VERSIONS:-3.5.8:ucs2 3.6.10:ucs2 3.
SUPPORTED_NODEJS_BUILD_VERSIONS=${SUPPORTED_NODEJS_BUILD_VERSIONS:-10.0.0 11.0.0 12.7.0 13.0.0 14.0.0}
SUPPORTED_NODEJS_TESTS_VERSIONS=${SUPPORTED_NODEJS_TESTS_VERSIONS:-10.20.1 11.15.0 12.17.0 13.14.0 14.3.0}
SUPPORTED_ELECTRONJS_VERSIONS=${SUPPORTED_ELECTRONJS_VERSIONS:-5.0.13 6.0.12 6.1.7 7.0.1 7.1.8 8.0.1 9.0.1 9.1.0 9.2.0}
SUPPORTED_ELECTRONJS_VERSIONS=${SUPPORTED_ELECTRONJS_VERSIONS:-5.0.13 6.0.12 6.1.7 7.0.1 7.1.8 8.0.1 9.0.1 9.1.0 9.2.0 10.0.0 10.1.0}

View File

@ -112,12 +112,17 @@ do_deepspeech_nodejs_build()
export PATH="${PYTHON27}:$PATH"
devDir=$DS_ROOT_TASK/node-gyp-cache/
nodejsDevDir=${devDir}/nodejs/
electronjsDevDir=${devDir}/electronjs/
for node in ${SUPPORTED_NODEJS_BUILD_VERSIONS}; do
EXTRA_CFLAGS="${EXTRA_LOCAL_CFLAGS}" EXTRA_LDFLAGS="${EXTRA_LOCAL_LDFLAGS}" EXTRA_LIBS="${EXTRA_LOCAL_LIBS}" make -C native_client/javascript \
TARGET=${SYSTEM_TARGET} \
RASPBIAN=${SYSTEM_RASPBIAN} \
TFDIR=${DS_TFDIR} \
NODE_ABI_TARGET=--target=$node \
NODE_DEVDIR=--devdir=${nodejsDevDir} \
clean node-wrapper
done;
@ -128,6 +133,7 @@ do_deepspeech_nodejs_build()
TFDIR=${DS_TFDIR} \
NODE_ABI_TARGET=--target=$electron \
NODE_DIST_URL=--disturl=https://electronjs.org/headers \
NODE_DEVDIR=--devdir=${electronjsDevDir} \
NODE_RUNTIME=--runtime=electron \
clean node-wrapper
done;

View File

@ -0,0 +1,15 @@
build:
template_file: test-darwin-opt-base.tyml
dependencies:
- "darwin-amd64-cpu-opt"
- "test-training_16k-linux-amd64-py36m-opt"
- "homebrew_tests-darwin-amd64"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${nodejs.brew.prep_12}
args:
tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.0.0 16k"
metadata:
name: "DeepSpeech OSX AMD64 CPU ElectronJS v10.0 tests"
description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v10.0, CPU only, optimized version"

View File

@ -0,0 +1,14 @@
build:
template_file: test-win-opt-base.tyml
dependencies:
- "win-amd64-cpu-opt"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${system.sox_win} && ${nodejs.win.prep_12}
args:
tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.0.0 16k"
metadata:
name: "DeepSpeech Windows AMD64 CPU ElectronJS v10.0 tests"
description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v10.0, CPU only, optimized version"

View File

@ -0,0 +1,16 @@
build:
template_file: test-linux-opt-base.tyml
docker_image: "ubuntu:16.04"
dependencies:
- "linux-amd64-cpu-opt"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt}
args:
tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.0.0 16k"
workerType: "${docker.dsTests}"
metadata:
name: "DeepSpeech Linux AMD64 CPU ElectronJS v10.0 tests (16kHz)"
description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v10.0, CPU only, optimized version (16kHz)"

View File

@ -0,0 +1,16 @@
build:
template_file: test-linux-opt-base.tyml
docker_image: "ubuntu:16.04"
dependencies:
- "linux-amd64-cpu-opt"
- "test-training_8k-linux-amd64-py36m-opt"
test_model_task: "test-training_8k-linux-amd64-py36m-opt"
system_setup:
>
${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt}
args:
tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.0.0 8k"
workerType: "${docker.dsTests}"
metadata:
name: "DeepSpeech Linux AMD64 CPU ElectronJS v10.0 tests (8kHz)"
description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v10.0, CPU only, optimized version (8kHz)"

View File

@ -0,0 +1,14 @@
build:
template_file: test-win-opt-base.tyml
dependencies:
- "node-package-cpu"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${system.sox_win} && ${nodejs.win.prep_12}
args:
tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.0.0 16k"
metadata:
name: "DeepSpeech Windows AMD64 CPU ElectronJS MultiArch Package v10.0 tests"
description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS MultiArch Package v10.0, CPU only, optimized version"

View File

@ -0,0 +1,14 @@
build:
template_file: test-win-cuda-opt-base.tyml
dependencies:
- "node-package-gpu"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${system.sox_win} && ${nodejs.win.prep_12}
args:
tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.0.0 16k cuda"
metadata:
name: "DeepSpeech Windows AMD64 CUDA ElectronJS MultiArch Package v10.0 tests"
description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS MultiArch Package v10.0, CUDA, optimized version"

View File

@ -0,0 +1,14 @@
build:
template_file: test-win-opt-base.tyml
dependencies:
- "node-package-tflite"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${system.sox_win} && ${nodejs.win.prep_12}
args:
tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron_tflite-tests.sh 12.x 10.0.0 16k"
metadata:
name: "DeepSpeech Windows AMD64 TFLite ElectronJS MultiArch Package v10.0 tests"
description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS MultiArch Package v10.0, TFLite only, optimized version"

View File

@ -0,0 +1,15 @@
build:
template_file: test-darwin-opt-base.tyml
dependencies:
- "darwin-amd64-cpu-opt"
- "test-training_16k-linux-amd64-py36m-opt"
- "homebrew_tests-darwin-amd64"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${nodejs.brew.prep_12}
args:
tests_cmdline: "$TASKCLUSTER_TASK_DIR/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.1.0 16k"
metadata:
name: "DeepSpeech OSX AMD64 CPU ElectronJS v10.1 tests"
description: "Testing DeepSpeech for OSX/AMD64 on ElectronJS v10.1, CPU only, optimized version"

View File

@ -0,0 +1,14 @@
build:
template_file: test-win-opt-base.tyml
dependencies:
- "win-amd64-cpu-opt"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${system.sox_win} && ${nodejs.win.prep_12}
args:
tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.1.0 16k"
metadata:
name: "DeepSpeech Windows AMD64 CPU ElectronJS v10.1 tests"
description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS v10.1, CPU only, optimized version"

View File

@ -0,0 +1,16 @@
build:
template_file: test-linux-opt-base.tyml
docker_image: "ubuntu:16.04"
dependencies:
- "linux-amd64-cpu-opt"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt}
args:
tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.1.0 16k"
workerType: "${docker.dsTests}"
metadata:
name: "DeepSpeech Linux AMD64 CPU ElectronJS v10.1 tests (16kHz)"
description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v10.1, CPU only, optimized version (16kHz)"

View File

@ -0,0 +1,16 @@
build:
template_file: test-linux-opt-base.tyml
docker_image: "ubuntu:16.04"
dependencies:
- "linux-amd64-cpu-opt"
- "test-training_8k-linux-amd64-py36m-opt"
test_model_task: "test-training_8k-linux-amd64-py36m-opt"
system_setup:
>
${nodejs.packages_xenial.prep_12} && ${nodejs.packages_xenial.apt_pinning} && apt-get -qq update && apt-get -qq -y install ${nodejs.packages_xenial.apt} ${electronjs.packages_xenial.apt}
args:
tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.1.0 8k"
workerType: "${docker.dsTests}"
metadata:
name: "DeepSpeech Linux AMD64 CPU ElectronJS v10.1 tests (8kHz)"
description: "Testing DeepSpeech for Linux/AMD64 on ElectronJS v10.1, CPU only, optimized version (8kHz)"

View File

@ -0,0 +1,14 @@
build:
template_file: test-win-opt-base.tyml
dependencies:
- "node-package-cpu"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${system.sox_win} && ${nodejs.win.prep_12}
args:
tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.1.0 16k"
metadata:
name: "DeepSpeech Windows AMD64 CPU ElectronJS MultiArch Package v10.1 tests"
description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS MultiArch Package v10.1, CPU only, optimized version"

View File

@ -0,0 +1,14 @@
build:
template_file: test-win-cuda-opt-base.tyml
dependencies:
- "node-package-gpu"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${system.sox_win} && ${nodejs.win.prep_12}
args:
tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron-tests.sh 12.x 10.1.0 16k cuda"
metadata:
name: "DeepSpeech Windows AMD64 CUDA ElectronJS MultiArch Package v10.1 tests"
description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS MultiArch Package v10.1, CUDA, optimized version"

View File

@ -0,0 +1,14 @@
build:
template_file: test-win-opt-base.tyml
dependencies:
- "node-package-tflite"
- "test-training_16k-linux-amd64-py36m-opt"
test_model_task: "test-training_16k-linux-amd64-py36m-opt"
system_setup:
>
${system.sox_win} && ${nodejs.win.prep_12}
args:
tests_cmdline: "${system.homedir.win}/DeepSpeech/ds/taskcluster/tc-electron_tflite-tests.sh 12.x 10.1.0 16k"
metadata:
name: "DeepSpeech Windows AMD64 TFLite ElectronJS MultiArch Package v10.1 tests"
description: "Testing DeepSpeech for Windows/AMD64 on ElectronJS MultiArch Package v10.1, TFLite only, optimized version"