From aa4c746899b4bab3ed62813b44120c385adda1ea Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Tue, 2 Jun 2020 12:15:30 +0200 Subject: [PATCH] Maximize binary compatibility --- taskcluster/.shared.yml | 14 +++++++------- taskcluster/homebrew-build.sh | 2 +- taskcluster/homebrew_tests-darwin-amd64.yml | 4 ++-- taskcluster/node-gyp-populate.sh | 2 +- taskcluster/tc-all-vars.sh | 8 ++++++-- taskcluster/tc-build-utils.sh | 2 +- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/taskcluster/.shared.yml b/taskcluster/.shared.yml index c0ff888c..24c73887 100644 --- a/taskcluster/.shared.yml +++ b/taskcluster/.shared.yml @@ -44,16 +44,16 @@ nodejs: prep_13: 'echo "deb http://deb.nodesource.com/node_13.x buster main" > /etc/apt/sources.list.d/nodesource.list && wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -' prep_14: 'echo "deb http://deb.nodesource.com/node_14.x buster main" > /etc/apt/sources.list.d/nodesource.list && wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -' brew: - prep_10: 'export NVM_DIR=$TASKCLUSTER_TASK_DIR/homebrew-tests/.nvm/ && source "$TASKCLUSTER_TASK_DIR/homebrew-tests/opt/nvm/nvm.sh" && nvm use 10.18.1' + prep_10: 'export NVM_DIR=$TASKCLUSTER_TASK_DIR/homebrew-tests/.nvm/ && source "$TASKCLUSTER_TASK_DIR/homebrew-tests/opt/nvm/nvm.sh" && nvm use 10.20.1' prep_11: 'export NVM_DIR=$TASKCLUSTER_TASK_DIR/homebrew-tests/.nvm/ && source "$TASKCLUSTER_TASK_DIR/homebrew-tests/opt/nvm/nvm.sh" && nvm use 11.15.0' - prep_12: 'export NVM_DIR=$TASKCLUSTER_TASK_DIR/homebrew-tests/.nvm/ && source "$TASKCLUSTER_TASK_DIR/homebrew-tests/opt/nvm/nvm.sh" && nvm use 12.8.1' - prep_13: 'export NVM_DIR=$TASKCLUSTER_TASK_DIR/homebrew-tests/.nvm/ && source "$TASKCLUSTER_TASK_DIR/homebrew-tests/opt/nvm/nvm.sh" && nvm use 13.1.0' + prep_12: 'export NVM_DIR=$TASKCLUSTER_TASK_DIR/homebrew-tests/.nvm/ && source "$TASKCLUSTER_TASK_DIR/homebrew-tests/opt/nvm/nvm.sh" && nvm use 12.17.0' + prep_13: 'export NVM_DIR=$TASKCLUSTER_TASK_DIR/homebrew-tests/.nvm/ && source "$TASKCLUSTER_TASK_DIR/homebrew-tests/opt/nvm/nvm.sh" && nvm use 13.14.0' prep_14: 'export NVM_DIR=$TASKCLUSTER_TASK_DIR/homebrew-tests/.nvm/ && source "$TASKCLUSTER_TASK_DIR/homebrew-tests/opt/nvm/nvm.sh" && nvm use 14.3.0' win: - prep_10: '/usr/bin/wget.exe https://nodejs.org/dist/v10.18.1/node-v10.18.1-win-x64.zip && ""C:\Program Files\7-zip\7z.exe"" x -o$TASKCLUSTER_NODE_DIR -tzip -aoa node-v10.18.1-win-x64.zip && rm node-*.zip && export PATH=$TASKCLUSTER_TASK_DIR/bin/node-v10.18.1-win-x64/:$PATH' + prep_10: '/usr/bin/wget.exe https://nodejs.org/dist/v10.20.1/node-v10.20.1-win-x64.zip && ""C:\Program Files\7-zip\7z.exe"" x -o$TASKCLUSTER_NODE_DIR -tzip -aoa node-v10.20.1-win-x64.zip && rm node-*.zip && export PATH=$TASKCLUSTER_TASK_DIR/bin/node-v10.20.1-win-x64/:$PATH' prep_11: '/usr/bin/wget.exe https://nodejs.org/dist/v11.15.0/node-v11.15.0-win-x64.zip && ""C:\Program Files\7-zip\7z.exe"" x -o$TASKCLUSTER_NODE_DIR -tzip -aoa node-v11.15.0-win-x64.zip && rm node-*.zip && export PATH=$TASKCLUSTER_TASK_DIR/bin/node-v11.15.0-win-x64/:$PATH' prep_12: '/usr/bin/wget.exe https://nodejs.org/dist/v12.14.1/node-v12.14.1-win-x64.zip && ""C:\Program Files\7-zip\7z.exe"" x -o$TASKCLUSTER_NODE_DIR -tzip -aoa node-v12.14.1-win-x64.zip && rm node-*.zip && export PATH=$TASKCLUSTER_TASK_DIR/bin/node-v12.14.1-win-x64/:$PATH' - prep_13: '/usr/bin/wget.exe https://nodejs.org/dist/v13.6.0/node-v13.6.0-win-x64.zip && ""C:\Program Files\7-zip\7z.exe"" x -o$TASKCLUSTER_NODE_DIR -tzip -aoa node-v13.6.0-win-x64.zip && rm node-*.zip && export PATH=$TASKCLUSTER_TASK_DIR/bin/node-v13.6.0-win-x64/:$PATH' + prep_13: '/usr/bin/wget.exe https://nodejs.org/dist/v13.14.0/node-v13.14.0-win-x64.zip && ""C:\Program Files\7-zip\7z.exe"" x -o$TASKCLUSTER_NODE_DIR -tzip -aoa node-v13.14.0-win-x64.zip && rm node-*.zip && export PATH=$TASKCLUSTER_TASK_DIR/bin/node-v13.14.0-win-x64/:$PATH' 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: @@ -63,8 +63,8 @@ system: url: 'https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.homebrew_builds.5/artifacts/public/homebrew_builds.tar.gz' namespace: 'project.deepspeech.homebrew_builds.5' homebrew_tests: - url: 'https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.homebrew_tests.5/artifacts/public/homebrew_tests.tar.gz' - namespace: 'project.deepspeech.homebrew_tests.5' + url: 'https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.homebrew_tests.6/artifacts/public/homebrew_tests.tar.gz' + namespace: 'project.deepspeech.homebrew_tests.6' android_cache: arm64_v8a: android_24: diff --git a/taskcluster/homebrew-build.sh b/taskcluster/homebrew-build.sh index d0f9df0e..6cdda80a 100755 --- a/taskcluster/homebrew-build.sh +++ b/taskcluster/homebrew-build.sh @@ -92,7 +92,7 @@ prepare_homebrew_tests() install_pkg_homebrew "nvm" source "${TESTS_BREW}/opt/nvm/nvm.sh" - for node_ver in ${SUPPORTED_NODEJS_VERSIONS}; + for node_ver in ${SUPPORTED_NODEJS_TESTS_VERSIONS}; do nvm install ${node_ver} done; diff --git a/taskcluster/homebrew_tests-darwin-amd64.yml b/taskcluster/homebrew_tests-darwin-amd64.yml index 1b9fc38c..fc9637f2 100644 --- a/taskcluster/homebrew_tests-darwin-amd64.yml +++ b/taskcluster/homebrew_tests-darwin-amd64.yml @@ -1,8 +1,8 @@ build: template_file: homebrew-darwin-opt-base.tyml homebrew: - url: 'https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.homebrew_tests.5/artifacts/public/homebrew_tests.tar.gz' - namespace: 'project.deepspeech.homebrew_tests.5' + url: 'https://community-tc.services.mozilla.com/api/index/v1/task/project.deepspeech.homebrew_tests.6/artifacts/public/homebrew_tests.tar.gz' + namespace: 'project.deepspeech.homebrew_tests.6' scripts: build: "taskcluster/homebrew-build.sh --tests" package: "taskcluster/homebrew-package.sh --tests" diff --git a/taskcluster/node-gyp-populate.sh b/taskcluster/node-gyp-populate.sh index ebc0e47a..7043d332 100755 --- a/taskcluster/node-gyp-populate.sh +++ b/taskcluster/node-gyp-populate.sh @@ -16,7 +16,7 @@ mkdir -p ${devDir} node-gyp list ${devDir} -for node in ${SUPPORTED_NODEJS_VERSIONS}; do +for node in ${SUPPORTED_NODEJS_BUILD_VERSIONS}; do node-gyp install --devdir ${devDir} \ --target=$node mkdir ${devDir}/${node}/x64/ || true diff --git a/taskcluster/tc-all-vars.sh b/taskcluster/tc-all-vars.sh index a73dd217..74887bdc 100755 --- a/taskcluster/tc-all-vars.sh +++ b/taskcluster/tc-all-vars.sh @@ -87,6 +87,10 @@ SUPPORTED_PYTHON_VERSIONS=${SUPPORTED_PYTHON_VERSIONS:-3.5.8:ucs2 3.6.10:ucs2 3. # When updating NodeJS / ElectronJS supported versions, do not forget to increment # deepspeech.node-gyp-cache. in both `system.node_gyp_cache` (taskcluster/.shared.yml) # and route index (taskcluster/node-gyp-cache.yml) to ensure the cache is updated -# Also, always target first major branch release to ensure proper binary compatibility -SUPPORTED_NODEJS_VERSIONS=${SUPPORTED_NODEJS_VERSIONS:-10.0.0 11.0.0 12.7.0 13.0.0 14.0.0} +# +# Also, builds should always target first major branch release to ensure proper binary compatibility +# and tests should always target latest major branch release version +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} diff --git a/taskcluster/tc-build-utils.sh b/taskcluster/tc-build-utils.sh index 26234a4f..5530517e 100755 --- a/taskcluster/tc-build-utils.sh +++ b/taskcluster/tc-build-utils.sh @@ -110,7 +110,7 @@ do_deepspeech_nodejs_build() export PATH="${PYTHON27}:$PATH" - for node in ${SUPPORTED_NODEJS_VERSIONS}; do + 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} \