commit
9c7003d77d
|
@ -1 +1,2 @@
|
|||
data/lm/kenlm.scorer filter=lfs diff=lfs merge=lfs -text
|
||||
.github/actions/check_artifact_exists/dist/index.js binary
|
|
@ -35,3 +35,9 @@ Hacking:
|
|||
For hacking into the action, please follow the [GitHub JavaScript
|
||||
Actions](https://docs.github.com/en/actions/creating-actions/creating-a-javascript-action#commit-tag-and-push-your-action-to-github)
|
||||
and specifically the usage of `ncc`.
|
||||
|
||||
```
|
||||
$ npm install
|
||||
$ npx ncc build main.js --license licenses.txt
|
||||
$ git add dist/
|
||||
```
|
||||
|
|
Binary file not shown.
|
@ -160,6 +160,31 @@ The above copyright notice and this permission notice (including the next paragr
|
|||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/plugin-throttling
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2018 Octokit contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
@octokit/request
|
||||
MIT
|
||||
The MIT License
|
||||
|
@ -450,6 +475,30 @@ Apache-2.0
|
|||
limitations under the License.
|
||||
|
||||
|
||||
bottleneck
|
||||
MIT
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Simon Grondin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
deprecation
|
||||
ISC
|
||||
The ISC License
|
||||
|
|
|
@ -4,6 +4,8 @@ const AdmZip = require('adm-zip');
|
|||
const filesize = require('filesize');
|
||||
const pathname = require('path');
|
||||
const fs = require('fs');
|
||||
const { throttling } = require('@octokit/plugin-throttling');
|
||||
const { GitHub } = require('@actions/github/lib/utils');
|
||||
|
||||
async function getGoodArtifacts(client, owner, repo, name) {
|
||||
const goodWorkflowArtifacts = await client.paginate(
|
||||
|
@ -57,8 +59,29 @@ async function main() {
|
|||
const path = core.getInput("path", { required: true });
|
||||
const name = core.getInput("name");
|
||||
const download = core.getInput("download");
|
||||
const client = github.getOctokit(token)
|
||||
const OctokitWithThrottling = GitHub.plugin(throttling);
|
||||
const client = new OctokitWithThrottling({
|
||||
auth: token,
|
||||
throttle: {
|
||||
onRateLimit: (retryAfter, options) => {
|
||||
console.log(
|
||||
`Request quota exhausted for request ${options.method} ${options.url}`
|
||||
);
|
||||
|
||||
// Retry twice after hitting a rate limit error, then give up
|
||||
if (options.request.retryCount <= 2) {
|
||||
console.log(`Retrying after ${retryAfter} seconds!`);
|
||||
return true;
|
||||
}
|
||||
},
|
||||
onAbuseLimit: (retryAfter, options) => {
|
||||
// does not retry, only logs a warning
|
||||
console.log(
|
||||
`Abuse detected for request ${options.method} ${options.url}`
|
||||
);
|
||||
},
|
||||
},
|
||||
});
|
||||
console.log("==> Repo:", owner + "/" + repo);
|
||||
|
||||
const goodArtifacts = await getGoodArtifacts(client, owner, repo, name);
|
||||
|
@ -116,4 +139,11 @@ async function main() {
|
|||
return;
|
||||
}
|
||||
|
||||
main();
|
||||
// We have to manually wrap the main function with a try-catch here because
|
||||
// GitHub will ignore uncatched exceptions and continue running the workflow,
|
||||
// leading to harder to diagnose errors downstream from this action.
|
||||
try {
|
||||
main();
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,220 @@
|
|||
{
|
||||
"name": "check_artifact_exists",
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"@actions/core": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz",
|
||||
"integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==",
|
||||
"dev": true
|
||||
},
|
||||
"@actions/github": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@actions/github/-/github-4.0.0.tgz",
|
||||
"integrity": "sha512-Ej/Y2E+VV6sR9X7pWL5F3VgEWrABaT292DRqRU6R4hnQjPtC/zD3nagxVdXWiRQvYDh8kHXo7IDmG42eJ/dOMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@actions/http-client": "^1.0.8",
|
||||
"@octokit/core": "^3.0.0",
|
||||
"@octokit/plugin-paginate-rest": "^2.2.3",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@actions/http-client": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz",
|
||||
"integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tunnel": "0.0.6"
|
||||
}
|
||||
},
|
||||
"@octokit/auth-token": {
|
||||
"version": "2.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz",
|
||||
"integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.3"
|
||||
}
|
||||
},
|
||||
"@octokit/core": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.4.0.tgz",
|
||||
"integrity": "sha512-6/vlKPP8NF17cgYXqucdshWqmMZGXkuvtcrWCgU5NOI0Pl2GjlmZyWgBMrU8zJ3v2MJlM6++CiB45VKYmhiWWg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/auth-token": "^2.4.4",
|
||||
"@octokit/graphql": "^4.5.8",
|
||||
"@octokit/request": "^5.4.12",
|
||||
"@octokit/request-error": "^2.0.5",
|
||||
"@octokit/types": "^6.0.3",
|
||||
"before-after-hook": "^2.2.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/endpoint": {
|
||||
"version": "6.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.11.tgz",
|
||||
"integrity": "sha512-fUIPpx+pZyoLW4GCs3yMnlj2LfoXTWDUVPTC4V3MUEKZm48W+XYpeWSZCv+vYF1ZABUm2CqnDVf1sFtIYrj7KQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/graphql": {
|
||||
"version": "4.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.1.tgz",
|
||||
"integrity": "sha512-2lYlvf4YTDgZCTXTW4+OX+9WTLFtEUc6hGm4qM1nlZjzxj+arizM4aHWzBVBCxY9glh7GIs0WEuiSgbVzv8cmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/request": "^5.3.0",
|
||||
"@octokit/types": "^6.0.3",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/openapi-types": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-6.0.0.tgz",
|
||||
"integrity": "sha512-CnDdK7ivHkBtJYzWzZm7gEkanA7gKH6a09Eguz7flHw//GacPJLmkHA3f3N++MJmlxD1Fl+mB7B32EEpSCwztQ=="
|
||||
},
|
||||
"@octokit/plugin-paginate-rest": {
|
||||
"version": "2.13.3",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.13.3.tgz",
|
||||
"integrity": "sha512-46lptzM9lTeSmIBt/sVP/FLSTPGx6DCzAdSX3PfeJ3mTf4h9sGC26WpaQzMEq/Z44cOcmx8VsOhO+uEgE3cjYg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/types": "^6.11.0"
|
||||
}
|
||||
},
|
||||
"@octokit/plugin-rest-endpoint-methods": {
|
||||
"version": "4.15.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.15.0.tgz",
|
||||
"integrity": "sha512-1AF9GM/Ywk8ukUM5seDRj286GdFpdfsHeOrOPBV2rVtRN7MQNzRIcw8W5sb4JPerjQ0WcRRwAwQyufg64BxJkA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/types": "^6.13.0",
|
||||
"deprecation": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"@octokit/plugin-throttling": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.4.1.tgz",
|
||||
"integrity": "sha512-qCQ+Z4AnL9OrXvV59EH3GzPxsB+WyqufoCjiCJXJxTbnt3W+leXbXw5vHrMp4NG9ltw00McFWIxIxNQAzLNoTA==",
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.1",
|
||||
"bottleneck": "^2.15.3"
|
||||
}
|
||||
},
|
||||
"@octokit/request": {
|
||||
"version": "5.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.15.tgz",
|
||||
"integrity": "sha512-6UnZfZzLwNhdLRreOtTkT9n57ZwulCve8q3IT/Z477vThu6snfdkBuhxnChpOKNGxcQ71ow561Qoa6uqLdPtag==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/endpoint": "^6.0.1",
|
||||
"@octokit/request-error": "^2.0.0",
|
||||
"@octokit/types": "^6.7.1",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"node-fetch": "^2.6.1",
|
||||
"universal-user-agent": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@octokit/request-error": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.5.tgz",
|
||||
"integrity": "sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@octokit/types": "^6.0.3",
|
||||
"deprecation": "^2.0.0",
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"@octokit/types": {
|
||||
"version": "6.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.13.0.tgz",
|
||||
"integrity": "sha512-W2J9qlVIU11jMwKHUp5/rbVUeErqelCsO5vW5PKNb7wAXQVUz87Rc+imjlEvpvbH8yUb+KHmv8NEjVZdsdpyxA==",
|
||||
"requires": {
|
||||
"@octokit/openapi-types": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"@vercel/ncc": {
|
||||
"version": "0.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.27.0.tgz",
|
||||
"integrity": "sha512-DllIJQapnU2YwewIhh/4dYesmMQw3h2cFtabECc/zSJHqUbNa0eJuEkRa6DXbZvh1YPWBtYQoPV17NlDpBw1Vw==",
|
||||
"dev": true
|
||||
},
|
||||
"adm-zip": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.5.tgz",
|
||||
"integrity": "sha512-IWwXKnCbirdbyXSfUDvCCrmYrOHANRZcc8NcRrvTlIApdl7PwE9oGcsYvNeJPAVY1M+70b4PxXGKIf8AEuiQ6w==",
|
||||
"dev": true
|
||||
},
|
||||
"before-after-hook": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz",
|
||||
"integrity": "sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==",
|
||||
"dev": true
|
||||
},
|
||||
"bottleneck": {
|
||||
"version": "2.19.5",
|
||||
"resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz",
|
||||
"integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw=="
|
||||
},
|
||||
"deprecation": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
|
||||
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
|
||||
"dev": true
|
||||
},
|
||||
"filesize": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz",
|
||||
"integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==",
|
||||
"dev": true
|
||||
},
|
||||
"is-plain-object": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
|
||||
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
|
||||
"dev": true
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"tunnel": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
|
||||
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
|
||||
"dev": true
|
||||
},
|
||||
"universal-user-agent": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz",
|
||||
"integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==",
|
||||
"dev": true
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@
|
|||
"devDependencies": {
|
||||
"@actions/core": "^1.2.6",
|
||||
"@actions/github": "^4.0.0",
|
||||
"@octokit/plugin-throttling": "^3.4.1",
|
||||
"@vercel/ncc": "^0.27.0",
|
||||
"adm-zip": "^0.5.2",
|
||||
"filesize": "^6.1.0"
|
||||
|
|
|
@ -62,8 +62,7 @@ runs:
|
|||
esac
|
||||
;;
|
||||
|
||||
# TODO: 'Windows*' might not be good
|
||||
MSYS_NT-10.0-17763:x86_64)
|
||||
${CI_MSYS_VERSION}:x86_64)
|
||||
case "${{ inputs.pyver }}" in
|
||||
3.5*)
|
||||
NUMPY_BUILD_VERSION="==1.11.0"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,686 +0,0 @@
|
|||
name: "macOS amd64"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
env:
|
||||
CI_TASK_DIR: ${{ github.workspace }}
|
||||
CI_ARTIFACTS_DIR: ${{ github.workspace }}/artifacts
|
||||
CI_NODE_MODULES_NTH: 1
|
||||
MACOSX_DEPLOYMENT_TARGET: "10.10"
|
||||
jobs:
|
||||
swig_macOS:
|
||||
name: "Build SWIG for macOS"
|
||||
runs-on: macos-10.15
|
||||
env:
|
||||
swig_hash: "90cdbee6a69d13b39d734083b9f91069533b0d7b"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "swig/swig"
|
||||
ref: ${{ env.swig_hash }}
|
||||
- run: |
|
||||
mkdir -p build-static/
|
||||
- uses: actions/cache@v2
|
||||
id: swig-build-cache
|
||||
with:
|
||||
path: build-static/
|
||||
key: swig-${{ runner.os }}-${{ env.swig_hash }}
|
||||
- run: |
|
||||
brew install automake
|
||||
if: steps.swig-build-cache.outputs.cache-hit != 'true'
|
||||
- run: |
|
||||
curl -sSL https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz > pcre-8.43.tar.gz
|
||||
if: steps.swig-build-cache.outputs.cache-hit != 'true'
|
||||
- run: |
|
||||
./Tools/pcre-build.sh
|
||||
if: steps.swig-build-cache.outputs.cache-hit != 'true'
|
||||
- run: |
|
||||
sh autogen.sh
|
||||
./configure \
|
||||
--prefix=${{ github.workspace }}/build-static/ \
|
||||
--program-prefix=ds-
|
||||
if: steps.swig-build-cache.outputs.cache-hit != 'true'
|
||||
- run: |
|
||||
make -j
|
||||
if: steps.swig-build-cache.outputs.cache-hit != 'true'
|
||||
- run: |
|
||||
make install
|
||||
if: steps.swig-build-cache.outputs.cache-hit != 'true'
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: ${{ github.workspace }}/build-static/
|
||||
build-ctc-decoder:
|
||||
name: "Build CTC decoder Python package for testing"
|
||||
needs: [ swig_macOS ]
|
||||
runs-on: macos-10.15
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6.8]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ./.github/actions/install-python-upstream
|
||||
with:
|
||||
version: ${{ matrix.python-version }}
|
||||
- run: |
|
||||
python --version
|
||||
pip --version
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "swig_macOS"
|
||||
path: ${{ github.workspace }}/native_client/ds-swig/
|
||||
- run: |
|
||||
ls -hal ${{ github.workspace }}/native_client/ds-swig/bin
|
||||
ln -s ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
chmod +x ${{ github.workspace }}/native_client/ds-swig/bin/ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
- id: get_numpy
|
||||
uses: ./.github/actions/numpy_vers
|
||||
with:
|
||||
pyver: ${{ matrix.python-version }}
|
||||
- run: |
|
||||
NUMPY_BUILD_VERSION=${{ steps.get_numpy.outputs.build_version }} \
|
||||
NUMPY_DEP_VERSION=${{ steps.get_numpy.outputs.dep_version }} \
|
||||
make -C native_client/ctcdecode/ \
|
||||
NUM_PROCESSES=$(sysctl hw.ncpu |cut -d' ' -f2) \
|
||||
bindings
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "ds_ctcdecoder-test.whl"
|
||||
path: ${{ github.workspace }}/native_client/ctcdecode/dist/*.whl
|
||||
- run: |
|
||||
make -C native_client/ctcdecode clean-keep-third-party
|
||||
train-test-model:
|
||||
name: "Train a test model"
|
||||
needs: [ "build-ctc-decoder" ]
|
||||
runs-on: macos-10.15
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
bitrate: ["8k", "16k"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.6
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "ds_ctcdecoder-test.whl"
|
||||
- run: |
|
||||
python --version
|
||||
pip --version
|
||||
- run: |
|
||||
pip install --upgrade pip==19.3.1 setuptools==45.0.0 wheel==0.33.6
|
||||
- run: |
|
||||
pip install ds_ctcdecoder-*-cp36-cp36m-*_x86_64.whl
|
||||
DS_NODECODER=y pip install --upgrade .
|
||||
- run: |
|
||||
bits=""
|
||||
if [ "${{ matrix.bitrate }}" = "8k" ]; then
|
||||
bits=8000
|
||||
fi
|
||||
if [ "${{ matrix.bitrate }}" = "16k" ]; then
|
||||
bits=16000
|
||||
fi
|
||||
|
||||
# Easier to rename to that we can exercize the LDC93S1 importer code to
|
||||
# generate the CSV file.
|
||||
echo "Moving ${bits} to LDC93S1.wav"
|
||||
mv data/smoke_test/LDC93S1_pcms16le_1_${bits}.wav data/smoke_test/LDC93S1.wav
|
||||
|
||||
./bin/run-ci-ldc93s1_new.sh 249 ${bits}
|
||||
./bin/run-ci-ldc93s1_tflite.sh ${bits}
|
||||
- name: Download convert_graphdef_memmapped_format tool
|
||||
run: |
|
||||
set -ex
|
||||
wget -O temp.zip https://github.com/coqui-ai/STT/releases/download/v0.9.3/convert_graphdef_memmapped_format.macOS.amd64.zip
|
||||
unzip temp.zip
|
||||
rm temp.zip
|
||||
mv convert_graphdef_memmapped_format /tmp
|
||||
chmod +x /tmp/convert_graphdef_memmapped_format
|
||||
/tmp/convert_graphdef_memmapped_format --in_graph=/tmp/train/output_graph.pb --out_graph=/tmp/train/output_graph.pbmm
|
||||
- run: |
|
||||
tar -cf - \
|
||||
-C /tmp/ckpt/ . \
|
||||
| xz -9 -T0 > /tmp/checkpoint.tar.xz
|
||||
- run: |
|
||||
mkdir -p ${{ github.workspace }}/tmp/
|
||||
cp /tmp/train*/output_graph.* /tmp/checkpoint.tar.xz ${{ github.workspace }}/tmp/
|
||||
- run: |
|
||||
ls -hal /tmp/ ${{ github.workspace }}/tmp/
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "test-model.tf-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ github.workspace }}/tmp/output_graph.pb*
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "test-model.tflite-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ github.workspace }}/tmp/output_graph.tflite
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "test-checkpoint.${{ matrix.bitrate }}.zip"
|
||||
path: ${{ github.workspace }}/tmp/checkpoint.tar.xz
|
||||
tensorflow_opt-macOS:
|
||||
name: "Check cache for TensorFlow"
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
status: ${{ steps.check_artifact_exists.outputs.status }}
|
||||
cache_key: ${{ steps.get_cache_key.outputs.key }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- id: get_cache_key
|
||||
uses: ./.github/actions/get_cache_key
|
||||
with:
|
||||
extras: "2"
|
||||
- id: check_artifact_exists
|
||||
uses: ./.github/actions/check_artifact_exists
|
||||
with:
|
||||
name: ${{ steps.get_cache_key.outputs.key }}
|
||||
build-tensorflow-macOS:
|
||||
name: "Build TensorFlow (opt) for macOS"
|
||||
needs: tensorflow_opt-macOS
|
||||
runs-on: macos-10.15
|
||||
steps:
|
||||
- run: true
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'found'
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: 'recursive'
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'missing'
|
||||
- uses: ./.github/actions/select-xcode
|
||||
with:
|
||||
version: "12.1.1"
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'missing'
|
||||
- uses: ./.github/actions/setup-tensorflow
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'missing'
|
||||
- uses: ./.github/actions/build-tensorflow
|
||||
with:
|
||||
flavor: "--darwin-cpu"
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'missing'
|
||||
- uses: ./.github/actions/package-tensorflow
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'missing'
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ needs.tensorflow_opt-macOS.outputs.cache_key }}
|
||||
path: ${{ github.workspace }}/artifacts/home.tar.xz
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'missing'
|
||||
build-lib_macOS:
|
||||
name: "Build libstt+client"
|
||||
runs-on: macos-10.15
|
||||
needs: [ build-tensorflow-macOS, tensorflow_opt-macOS ]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: ${{ needs.tensorflow_opt-macOS.outputs.cache_key }}
|
||||
path: ${{ github.workspace }}/
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'missing'
|
||||
- uses: ./.github/actions/check_artifact_exists
|
||||
with:
|
||||
name: ${{ needs.tensorflow_opt-macOS.outputs.cache_key }}
|
||||
path: ${{ github.workspace }}/
|
||||
download: true
|
||||
if: needs.tensorflow_opt-macOS.outputs.status == 'found'
|
||||
- run: |
|
||||
tar xkf ${{ github.workspace }}/home.tar.xz
|
||||
rm ${{ github.workspace }}/home.tar.xz
|
||||
- run: |
|
||||
git status
|
||||
- uses: ./.github/actions/select-xcode
|
||||
with:
|
||||
version: "12.1.1"
|
||||
- uses: ./.github/actions/host-build
|
||||
with:
|
||||
flavor: ${{ matrix.build-flavor }}
|
||||
- uses: ./.github/actions/package
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "native_client.${{ matrix.build-flavor }}.tar.xz"
|
||||
path: ${{ github.workspace }}/artifacts/native_client.tar.xz
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "libstt.${{ matrix.build-flavor }}.zip"
|
||||
path: ${{ github.workspace }}/artifacts/libstt.zip
|
||||
build-python-macOS:
|
||||
name: "Build python bindings for macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: [ build-lib_macOS, swig_macOS ]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
python-version: [3.6.8, 3.7.9, 3.8.8, 3.9.2]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "native_client.${{ matrix.build-flavor }}.tar.xz"
|
||||
path: ${{ github.workspace }}/tensorflow/bazel-bin/native_client/
|
||||
- run: |
|
||||
cd ${{ github.workspace }}/tensorflow/bazel-bin/native_client/
|
||||
tar xf native_client.tar.xz
|
||||
ls -hal
|
||||
cd ${{ github.workspace }}/
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "swig_macOS"
|
||||
path: ${{ github.workspace }}/native_client/ds-swig/
|
||||
- run: |
|
||||
ls -hal ${{ github.workspace }}/native_client/ds-swig/bin
|
||||
ln -s ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
chmod +x ${{ github.workspace }}/native_client/ds-swig/bin/ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
- uses: ./.github/actions/install-python-upstream
|
||||
with:
|
||||
version: ${{ matrix.python-version }}
|
||||
# GitHub packaged version are limited to macOS deployment target 10.14
|
||||
#- uses: actions/setup-python@v2
|
||||
# with:
|
||||
# python-version: ${{ matrix.python-version }}
|
||||
- id: get_numpy
|
||||
uses: ./.github/actions/numpy_vers
|
||||
with:
|
||||
pyver: ${{ matrix.python-version }}
|
||||
- uses: ./.github/actions/python-build
|
||||
with:
|
||||
build_flavor: ${{ matrix.build-flavor }}
|
||||
numpy_build: "${{ steps.get_numpy.outputs.build_version }}"
|
||||
numpy_dep: "${{ steps.get_numpy.outputs.dep_version }}"
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}-${{ matrix.python-version }}.whl"
|
||||
path: ${{ github.workspace }}/wheels/*.whl
|
||||
build-nodejs-macOS:
|
||||
name: "Build NodeJS and ElectronJS for macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: [ build-lib_macOS, swig_macOS ]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "native_client.${{ matrix.build-flavor }}.tar.xz"
|
||||
path: ${{ github.workspace }}/tensorflow/bazel-bin/native_client/
|
||||
- run: |
|
||||
cd ${{ github.workspace }}/tensorflow/bazel-bin/native_client/
|
||||
tar xf native_client.tar.xz
|
||||
ls -hal
|
||||
cd ${{ github.workspace }}/
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "swig_macOS"
|
||||
path: ${{ github.workspace }}/native_client/ds-swig/
|
||||
- run: |
|
||||
ls -hal ${{ github.workspace }}/native_client/ds-swig/bin
|
||||
ln -s ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
chmod +x ${{ github.workspace }}/native_client/ds-swig/bin/ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12
|
||||
- uses: actions/cache@v2
|
||||
id: node-headers-cache
|
||||
with:
|
||||
path: native_client/javascript/headers/nodejs/
|
||||
key: node-headers-10.0.0_15.0.0
|
||||
- uses: actions/cache@v2
|
||||
id: electron-headers-cache
|
||||
with:
|
||||
path: native_client/javascript/headers/electronjs/
|
||||
key: electron-headers-5.0.13_12.0.0
|
||||
- uses: ./.github/actions/node-build
|
||||
with:
|
||||
nodejs_versions: "10.0.0 11.0.0 12.7.0 13.0.0 14.0.0 15.0.0"
|
||||
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 11.0.0 12.0.0"
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "nodewrapper-${{ matrix.build-flavor }}-macOS_amd64.tar.gz"
|
||||
path: ${{ github.workspace }}/native_client/javascript/wrapper.tar.gz
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "stt_intermediate-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ github.workspace }}/native_client/javascript/stt-*.tgz
|
||||
test-cpp-macOS:
|
||||
name: "Test C++ binary on macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: [ build-lib_macOS, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test", "prod"]
|
||||
bitrate: ["8k", "16k"]
|
||||
env:
|
||||
CI_TMP_DIR: ${{ github.workspace }}/tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "native_client.${{ matrix.build-flavor }}.tar.xz"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
- run: |
|
||||
cd ${{ env.CI_TMP_DIR }}
|
||||
mkdir ds && cd ds && tar xf ../native_client.tar.xz
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "cpp"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
test-py-macOS:
|
||||
name: "Test Python bindings on macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: [ build-python-macOS, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6.8, 3.7.9, 3.8.8, 3.9.2]
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test", "prod"]
|
||||
bitrate: ["8k", "16k"]
|
||||
env:
|
||||
CI_TMP_DIR: ${{ github.workspace }}/tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}-${{ matrix.python-version }}.whl"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
pip3 install --only-binary :all: --upgrade ${{ env.CI_TMP_DIR }}/stt*.whl
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "python"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
repackage-nodejs-allplatforms:
|
||||
name: "Repackage NodeJS / ElectronJS for multiplatforms"
|
||||
runs-on: ubuntu-20.04
|
||||
needs: [ build-nodejs-macOS ]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- run: |
|
||||
mkdir -p /tmp/nodewrapper-${{ matrix.build-flavor }}-macOS_amd64/
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "nodewrapper-${{ matrix.build-flavor }}-macOS_amd64.tar.gz"
|
||||
path: /tmp/nodewrapper-macOS_amd64/
|
||||
- run: |
|
||||
tar -C ${{ github.workspace }}/native_client/javascript -xzvf /tmp/nodewrapper-macOS_amd64/wrapper.tar.gz
|
||||
- run: |
|
||||
PROJECT_NAME="deepspeech"
|
||||
if [ "${{ matrix.build-flavor }}" = "tflite" ]; then
|
||||
PROJECT_NAME="deepspeech-tflite"
|
||||
fi
|
||||
make -C native_client/javascript clean npm-pack PROJECT_NAME=$PROJECT_NAME
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "deepspeech-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ github.workspace }}/native_client/javascript/deepspeech-*.tgz
|
||||
test-nodejs-macOS:
|
||||
name: "Test NodeJS bindings on macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: [ build-nodejs-macOS, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
# https://nodejs.org/en/about/releases/
|
||||
nodejs-version: [10, 12, 14, 15]
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test"]
|
||||
bitrate: ["16k"]
|
||||
env:
|
||||
CI_TMP_DIR: ${{ github.workspace }}/tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ matrix.nodejs-version }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "stt_intermediate-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- uses: actions/cache@v2
|
||||
id: node-modules-cache
|
||||
with:
|
||||
path: ~/.npm/
|
||||
key: node-modules-${{ matrix.build-flavor }}-${{ runner.os }}-${{ env.CI_NODE_MODULES_NTH }}
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
npm install --verbose ${{ env.CI_TMP_DIR }}/stt*.tgz
|
||||
- run: |
|
||||
ls -hal node_modules/deepspeech* node_modules/.bin/
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "node"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
test-electronjs-macOS:
|
||||
name: "Test ElectronJS bindings on macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: [ build-nodejs-macOS, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
electronjs-version: [5.0.13, 6.1.7, 7.1.8, 8.0.1, 9.2.0, 10.1.0, 11.0.0, 12.0.0]
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test"]
|
||||
bitrate: ["16k"]
|
||||
env:
|
||||
CI_TMP_DIR: ${{ github.workspace }}/tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "stt_intermediate-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- uses: actions/cache@v2
|
||||
id: electron-modules-cache
|
||||
with:
|
||||
path: ~/.npm/
|
||||
key: electron-modules-${{ matrix.build-flavor }}-${{ runner.os }}-${{ env.CI_NODE_MODULES_NTH }}
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
npm install ${{ env.CI_TMP_DIR }}/stt*.tgz
|
||||
- run: |
|
||||
npm install electron@${{ matrix.electronjs-version }}
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "electronjs"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
timeout-minutes: 5
|
||||
test-nodejs_all-macOS:
|
||||
name: "Test MultiArchPlatform NodeJS bindings on macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: [ repackage-nodejs-allplatforms, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
# https://nodejs.org/en/about/releases/
|
||||
nodejs-version: [10, 15]
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test", "prod"]
|
||||
bitrate: ["8k", "16k"]
|
||||
env:
|
||||
CI_TMP_DIR: ${{ github.workspace }}/tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ matrix.nodejs-version }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- uses: actions/cache@v2
|
||||
id: node-modules-cache
|
||||
with:
|
||||
path: ~/.npm/
|
||||
key: node-modules-${{ matrix.build-flavor }}-${{ runner.os }}-${{ env.CI_NODE_MODULES_NTH }}
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
npm install --verbose ${{ env.CI_TMP_DIR }}/stt*.tgz
|
||||
- run: |
|
||||
ls -hal node_modules/deepspeech* node_modules/.bin/
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "node"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
test-electronjs_all-macOS:
|
||||
name: "Test MultiArchPlatform ElectronJS bindings on macOS"
|
||||
runs-on: macos-10.15
|
||||
needs: [ repackage-nodejs-allplatforms, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
electronjs-version: [5.0.13, 12.0.0]
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test", "prod"]
|
||||
bitrate: ["8k", "16k"]
|
||||
env:
|
||||
CI_TMP_DIR: ${{ github.workspace }}/tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: ${{ github.workspace }}/tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.CI_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- uses: actions/cache@v2
|
||||
id: electron-modules-cache
|
||||
with:
|
||||
path: ~/.npm/
|
||||
key: electron-modules-${{ matrix.build-flavor }}-${{ runner.os }}-${{ env.CI_NODE_MODULES_NTH }}
|
||||
- run: |
|
||||
ls -hal ${{ env.CI_TMP_DIR }}/
|
||||
npm install ${{ env.CI_TMP_DIR }}/stt*.tgz
|
||||
- run: |
|
||||
npm install electron@${{ matrix.electronjs-version }}
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "electronjs"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
timeout-minutes: 5
|
|
@ -1,660 +0,0 @@
|
|||
name: "Windows amd64"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
env:
|
||||
TASKCLUSTER_TASK_DIR: ${{ github.workspace }}
|
||||
TASKCLUSTER_ARTIFACTS: ${{ github.workspace }}/artifacts
|
||||
TC_MSYS_VERSION: MSYS_NT-10.0-17763
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
jobs:
|
||||
swig_Windows:
|
||||
name: "Build SWIG for Windows"
|
||||
runs-on: windows-2019
|
||||
steps:
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
update: true
|
||||
install: >-
|
||||
autoconf
|
||||
automake
|
||||
bison
|
||||
gcc
|
||||
git
|
||||
make
|
||||
pcre-devel
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "swig/swig"
|
||||
ref: "90cdbee6a69d13b39d734083b9f91069533b0d7b"
|
||||
- run: |
|
||||
mkdir -p build-static/
|
||||
- run: |
|
||||
sh autogen.sh
|
||||
./configure \
|
||||
--prefix=`pwd`/build-static/ \
|
||||
--program-prefix=ds-
|
||||
- run: |
|
||||
make -j
|
||||
- run: |
|
||||
make install
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: ${{ github.workspace }}/build-static/
|
||||
swig_Linux:
|
||||
name: "Build SWIG for Linux"
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
repository: "swig/swig"
|
||||
ref: "90cdbee6a69d13b39d734083b9f91069533b0d7b"
|
||||
- run: |
|
||||
sudo apt-get install -y --no-install-recommends autoconf automake build-essential bison libpcre2-dev
|
||||
- run: |
|
||||
mkdir -p build-static/
|
||||
- run: |
|
||||
sh autogen.sh
|
||||
./configure \
|
||||
--prefix=${{ github.workspace }}/build-static/ \
|
||||
--program-prefix=ds-
|
||||
- run: |
|
||||
make -j
|
||||
- run: |
|
||||
make install
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: ${{ github.workspace }}/build-static/
|
||||
build-ctc-decoder-windows:
|
||||
name: "Build CTC decoder Windows Python package for testing"
|
||||
needs: [swig_Windows]
|
||||
runs-on: windows-2019
|
||||
steps:
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
path-type: inherit
|
||||
update: true
|
||||
install: >-
|
||||
git
|
||||
make
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.7.9
|
||||
- run: |
|
||||
python --version
|
||||
python -m pip --version
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "swig_Windows"
|
||||
path: ${{ github.workspace }}/native_client/ds-swig/
|
||||
- name: Link ds-swig into swig
|
||||
run: |
|
||||
set -ex
|
||||
ls -hal native_client/ds-swig/bin
|
||||
ln -s ds-swig.exe native_client/ds-swig/bin/swig.exe
|
||||
chmod +x native_client/ds-swig/bin/ds-swig.exe native_client/ds-swig/bin/swig.exe
|
||||
- name: Remove /usr/bin/link conflicting with MSVC link.exe
|
||||
run: |
|
||||
rm /usr/bin/link
|
||||
- run: |
|
||||
make -C native_client/ctcdecode/ \
|
||||
NUM_PROCESSES=$(nproc) \
|
||||
bindings
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "ds_ctcdecoder-windows-test.whl"
|
||||
path: ${{ github.workspace }}/native_client/ctcdecode/dist/*.whl
|
||||
- run: |
|
||||
make -C native_client/ctcdecode clean-keep-third-party
|
||||
build-ctc-decoder-linux:
|
||||
name: "Build CTC decoder Linux Python package for testing"
|
||||
needs: [swig_Linux]
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.6
|
||||
- run: |
|
||||
python --version
|
||||
pip --version
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "swig_Linux"
|
||||
path: ${{ github.workspace }}/native_client/ds-swig/
|
||||
- run: |
|
||||
ls -hal ${{ github.workspace }}/native_client/ds-swig/bin
|
||||
ln -s ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
chmod +x ${{ github.workspace }}/native_client/ds-swig/bin/ds-swig ${{ github.workspace }}/native_client/ds-swig/bin/swig
|
||||
- run: |
|
||||
make -C native_client/ctcdecode/ \
|
||||
NUM_PROCESSES=$(nproc) \
|
||||
bindings
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "ds_ctcdecoder-linux-test.whl"
|
||||
path: ${{ github.workspace }}/native_client/ctcdecode/dist/*.whl
|
||||
- run: |
|
||||
make -C native_client/ctcdecode clean-keep-third-party
|
||||
train-test-model:
|
||||
name: "Train a test model"
|
||||
needs: ["build-ctc-decoder-linux"]
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
bitrate: ["8k", "16k"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.6
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "ds_ctcdecoder-linux-test.whl"
|
||||
- run: |
|
||||
python --version
|
||||
pip --version
|
||||
- run: |
|
||||
pip install --upgrade pip==19.3.1 setuptools==45.0.0 wheel==0.33.6
|
||||
- run: |
|
||||
pip install ds_ctcdecoder-*-cp36-cp36m-manylinux1_x86_64.whl
|
||||
DS_NODECODER=y pip install --upgrade .
|
||||
- name: Run training script
|
||||
run: |
|
||||
set -ex
|
||||
bits=""
|
||||
if [ "${{ matrix.bitrate }}" = "8k" ]; then
|
||||
bits=8000
|
||||
fi
|
||||
if [ "${{ matrix.bitrate }}" = "16k" ]; then
|
||||
bits=16000
|
||||
fi
|
||||
|
||||
# Easier to rename to that we can exercize the LDC93S1 importer code to
|
||||
# generate the CSV file.
|
||||
echo "Moving ${bits} to LDC93S1.wav"
|
||||
mv data/smoke_test/LDC93S1_pcms16le_1_${bits}.wav data/smoke_test/LDC93S1.wav
|
||||
|
||||
./bin/run-ci-ldc93s1_new.sh 249 ${bits}
|
||||
if [ "${{ matrix.build-flavor }}" = "tflite" ]; then
|
||||
./bin/run-ci-ldc93s1_tflite.sh ${bits}
|
||||
fi
|
||||
- name: Download convert_graphdef_memmapped_format tool
|
||||
run: |
|
||||
set -ex
|
||||
wget -O temp.zip https://github.com/coqui-ai/STT/releases/download/v0.9.3/convert_graphdef_memmapped_format.linux.amd64.zip
|
||||
unzip temp.zip
|
||||
rm temp.zip
|
||||
mv convert_graphdef_memmapped_format /tmp
|
||||
chmod +x /tmp/convert_graphdef_memmapped_format
|
||||
/tmp/convert_graphdef_memmapped_format --in_graph=/tmp/train/output_graph.pb --out_graph=/tmp/train/output_graph.pbmm
|
||||
if: matrix.build-flavor == 'tf'
|
||||
- run: |
|
||||
cp /tmp/train*/output_graph.* /tmp/
|
||||
- run: |
|
||||
tar -cf - \
|
||||
-C /tmp/ckpt/ . \
|
||||
| xz -9 -T0 > /tmp/checkpoint.tar.xz
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: /tmp/output_graph.*
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "test-checkpoint.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: /tmp/checkpoint.tar.xz
|
||||
tensorflow_opt-Windows:
|
||||
name: "Check cache for TensorFlow"
|
||||
runs-on: ubuntu-20.04
|
||||
outputs:
|
||||
status: ${{ steps.check_artifact_exists.outputs.status }}
|
||||
cache_key: ${{ steps.get_cache_key.outputs.key }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- id: get_cache_key
|
||||
uses: ./.github/actions/get_cache_key
|
||||
with:
|
||||
extras: "7"
|
||||
- id: check_artifact_exists
|
||||
uses: ./.github/actions/check_artifact_exists
|
||||
with:
|
||||
name: ${{ steps.get_cache_key.outputs.key }}
|
||||
build-tensorflow-Windows:
|
||||
name: "Build TensorFlow (opt) for Windows"
|
||||
needs: tensorflow_opt-Windows
|
||||
runs-on: windows-2019
|
||||
steps:
|
||||
- run: true
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'found'
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
path-type: inherit
|
||||
update: true
|
||||
install: >-
|
||||
git
|
||||
patch
|
||||
tar
|
||||
unzip
|
||||
zip
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.7.9
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: 'recursive'
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
# It's important that this PATH change only happens *after* the checkout
|
||||
# above, because otherwise the checkout fails when persisisting the
|
||||
# credentials for submodules due to using MSYS2 Git
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
- run: ./ci_scripts/tf-setup.sh
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
- run: ./ci_scripts/tf-build.sh "--windows-cpu"
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
- run: ./ci_scripts/tf-package.sh
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ${{ needs.tensorflow_opt-Windows.outputs.cache_key }}
|
||||
path: ${{ github.workspace }}/artifacts/home.tar.xz
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
build-lib_Windows:
|
||||
name: "Build libstt+client"
|
||||
runs-on: windows-2019
|
||||
needs: [build-tensorflow-Windows, tensorflow_opt-Windows]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
update: true
|
||||
install: >-
|
||||
git
|
||||
make
|
||||
patch
|
||||
pkg-config
|
||||
tar
|
||||
unzip
|
||||
zip
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: ${{ needs.tensorflow_opt-Windows.outputs.cache_key }}
|
||||
path: ${{ github.workspace }}/
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'missing'
|
||||
- uses: ./.github/actions/check_artifact_exists
|
||||
with:
|
||||
name: ${{ needs.tensorflow_opt-Windows.outputs.cache_key }}
|
||||
path: ${{ github.workspace }}/
|
||||
download: true
|
||||
if: needs.tensorflow_opt-Windows.outputs.status == 'found'
|
||||
- run: |
|
||||
"C:/Program Files/7-Zip/7z.exe" x home.tar.xz -so | "C:/Program Files/7-Zip/7z.exe" x -aos -si -ttar -o`pwd`
|
||||
rm home.tar.xz
|
||||
- run: |
|
||||
git status
|
||||
- run: ./ci_scripts/host-build.sh ${{ matrix.build-flavor }}
|
||||
- run: ./ci_scripts/package.sh
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "native_client.${{ matrix.build-flavor }}.tar.xz"
|
||||
path: ${{ github.workspace }}/artifacts/native_client.tar.xz
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "libstt.${{ matrix.build-flavor }}.zip"
|
||||
path: ${{ github.workspace }}/artifacts/libstt.zip
|
||||
build-python-Windows:
|
||||
name: "Build Python bindings for Windows"
|
||||
runs-on: windows-2019
|
||||
needs: [build-lib_Windows, swig_Windows]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
python-version: [3.6.8, 3.7.9, 3.8.8, 3.9.2]
|
||||
steps:
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
path-type: inherit
|
||||
update: true
|
||||
install: >-
|
||||
make
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "native_client.${{ matrix.build-flavor }}.tar.xz"
|
||||
path: ${{ github.workspace }}/tensorflow/bazel-bin/native_client/
|
||||
- run: |
|
||||
pushd tensorflow/bazel-bin/native_client/
|
||||
"C:/Program Files/7-Zip/7z.exe" x native_client.tar.xz -so | "C:/Program Files/7-Zip/7z.exe" x -aoa -si -ttar -o`pwd`
|
||||
ls -hal
|
||||
popd
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "swig_Windows"
|
||||
path: ${{ github.workspace }}/native_client/ds-swig/
|
||||
- name: Link ds-swig into swig
|
||||
run: |
|
||||
set -ex
|
||||
ls -hal native_client/ds-swig/bin
|
||||
ln -s ds-swig.exe native_client/ds-swig/bin/swig.exe
|
||||
chmod +x native_client/ds-swig/bin/ds-swig.exe native_client/ds-swig/bin/swig.exe
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Remove /usr/bin/link conflicting with MSVC link.exe
|
||||
run: |
|
||||
rm /usr/bin/link
|
||||
- id: get_numpy
|
||||
uses: ./.github/actions/numpy_vers
|
||||
with:
|
||||
pyver: ${{ matrix.python-version }}
|
||||
- uses: ./.github/actions/python-build
|
||||
with:
|
||||
build_flavor: ${{ matrix.build-flavor }}
|
||||
numpy_build: "${{ steps.get_numpy.outputs.build_version }}"
|
||||
numpy_dep: "${{ steps.get_numpy.outputs.dep_version }}"
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}-${{ matrix.python-version }}.whl"
|
||||
path: ${{ github.workspace }}/wheels/*.whl
|
||||
build-nodejs-Windows:
|
||||
name: "Build NodeJS/ElectronJS for Windows"
|
||||
runs-on: windows-2019
|
||||
needs: [build-lib_Windows, swig_Windows]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
steps:
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
path-type: inherit
|
||||
update: true
|
||||
install: >-
|
||||
make
|
||||
tar
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "native_client.${{ matrix.build-flavor }}.tar.xz"
|
||||
path: ${{ github.workspace }}/tensorflow/bazel-bin/native_client/
|
||||
- run: |
|
||||
pushd tensorflow/bazel-bin/native_client/
|
||||
"C:/Program Files/7-Zip/7z.exe" x native_client.tar.xz -so | "C:/Program Files/7-Zip/7z.exe" x -aoa -si -ttar -o`pwd`
|
||||
ls -hal
|
||||
popd
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "swig_Windows"
|
||||
path: ${{ github.workspace }}/native_client/ds-swig/
|
||||
- name: Link ds-swig into swig
|
||||
run: |
|
||||
set -ex
|
||||
ls -hal native_client/ds-swig/bin
|
||||
ln -s ds-swig.exe native_client/ds-swig/bin/swig.exe
|
||||
chmod +x native_client/ds-swig/bin/ds-swig.exe native_client/ds-swig/bin/swig.exe
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12
|
||||
- uses: ./.github/actions/node-build
|
||||
with:
|
||||
nodejs_versions: "10.0.0 11.0.0 12.7.0 13.0.0 14.0.0 15.0.0"
|
||||
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 11.0.0 12.0.0"
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "nodewrapper-${{ matrix.build-flavor }}.tar.gz"
|
||||
path: ${{ github.workspace }}/native_client/javascript/wrapper.tar.gz
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ github.workspace }}/native_client/javascript/stt-*.tgz
|
||||
test-cpp-Windows:
|
||||
name: "Test C++ binary on Windows"
|
||||
runs-on: windows-2019
|
||||
needs: [build-lib_Windows, train-test-model]
|
||||
strategy:
|
||||
matrix:
|
||||
build-flavor: ["tf", "tflite"]
|
||||
env:
|
||||
TASKCLUSTER_TMP_DIR: tmp/
|
||||
STT_TEST_MODEL: tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Download native_client.tar.xz
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "native_client.${{ matrix.build-flavor }}.tar.xz"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
- name: Extract native_client.tar.xz
|
||||
run: |
|
||||
mkdir -p ${{ env.TASKCLUSTER_TMP_DIR }}/ds
|
||||
pushd ${{ env.TASKCLUSTER_TMP_DIR }}/ds
|
||||
"C:/Program Files/7-Zip/7z.exe" x ../native_client.tar.xz -so | "C:/Program Files/7-Zip/7z.exe" x -aoa -si -ttar -o`pwd`
|
||||
popd
|
||||
- name: Download trained test model
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-16k.zip"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
- run: |
|
||||
ls -hal ${{ env.TASKCLUSTER_TMP_DIR }}/
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "cppwin"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: "16k"
|
||||
model-kind: ""
|
||||
test-py-Windows:
|
||||
name: "Test Python bindings on Windows"
|
||||
runs-on: windows-2019
|
||||
needs: [ build-python-Windows, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6.8, 3.7.9, 3.8.8, 3.9.2]
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test", "prod"]
|
||||
bitrate: ["8k", "16k"]
|
||||
env:
|
||||
TASKCLUSTER_TMP_DIR: tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
path-type: inherit
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- uses: ./.github/actions/win-install-sox
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}-${{ matrix.python-version }}.whl"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.TASKCLUSTER_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.TASKCLUSTER_TMP_DIR }}/
|
||||
python -m pip install --only-binary :all: --upgrade ${{ env.TASKCLUSTER_TMP_DIR }}/stt*.whl
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "python"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
test-nodejs-Windows:
|
||||
name: "Test NodeJS bindings on Windows"
|
||||
runs-on: windows-2019
|
||||
needs: [ build-nodejs-Windows, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
nodejs-version: [10, 12, 14, 15]
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test"]
|
||||
bitrate: ["16k"]
|
||||
env:
|
||||
TASKCLUSTER_TMP_DIR: tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
path-type: inherit
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: ${{ matrix.nodejs-version }}
|
||||
- uses: ./.github/actions/win-install-sox
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.TASKCLUSTER_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.TASKCLUSTER_TMP_DIR }}/
|
||||
npm install ${{ env.TASKCLUSTER_TMP_DIR }}/stt*.tgz
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "node"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
test-electronjs-Windows:
|
||||
name: "Test ElectronJS bindings on Windows"
|
||||
runs-on: windows-2019
|
||||
needs: [ build-nodejs-Windows, train-test-model ]
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
strategy:
|
||||
matrix:
|
||||
electronjs-version: [5.0.13, 6.1.7, 7.1.8, 8.0.1, 9.2.0, 10.1.0, 11.0.0, 12.0.0]
|
||||
build-flavor: ["tf", "tflite"]
|
||||
models: ["test"]
|
||||
bitrate: ["16k"]
|
||||
env:
|
||||
TASKCLUSTER_TMP_DIR: tmp/
|
||||
STT_PROD_MODEL: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pb
|
||||
STT_PROD_MODEL_MMAP: https://github.com/reuben/STT/releases/download/v0.7.0-alpha.3/output_graph.pbmm
|
||||
STT_TEST_MODEL: tmp/output_graph.pb
|
||||
EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v2.3.0-6-g23ad988"
|
||||
steps:
|
||||
- name: Switch git-bash shell to MSYS2 shell by adding MSYS2 path to PATH front
|
||||
run: echo "D:\a\_temp\msys\msys64\usr\bin" >> $GITHUB_PATH
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: MSYS
|
||||
path-type: inherit
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 12
|
||||
- uses: ./.github/actions/win-install-sox
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "stt-${{ matrix.build-flavor }}.tgz"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "test-model.${{ matrix.build-flavor }}-${{ matrix.bitrate }}.zip"
|
||||
path: ${{ env.TASKCLUSTER_TMP_DIR }}
|
||||
if: matrix.models == 'test'
|
||||
- run: |
|
||||
ls -hal ${{ env.TASKCLUSTER_TMP_DIR }}/
|
||||
if: matrix.models == 'test'
|
||||
- name: Install STT NodeJS package
|
||||
run: |
|
||||
ls -hal ${{ env.TASKCLUSTER_TMP_DIR }}/
|
||||
npm install ${{ env.TASKCLUSTER_TMP_DIR }}/stt*.tgz
|
||||
- run: |
|
||||
npm install electron@${{ matrix.electronjs-version }}
|
||||
- uses: ./.github/actions/run-tests
|
||||
with:
|
||||
runtime: "electronjs"
|
||||
build-flavor: ${{ matrix.build-flavor }}
|
||||
bitrate: ${{ matrix.bitrate }}
|
||||
model-kind: ${{ matrix.models }}
|
||||
timeout-minutes: 5
|
|
@ -38,4 +38,3 @@ doc/xml-dotnet
|
|||
convert_graphdef_memmapped_format
|
||||
native_client/swift/deepspeech_ios.framework/deepspeech_ios
|
||||
.github/actions/check_artifact_exists/node_modules/
|
||||
.github/actions/check_artifact_exists/package-lock.json
|
||||
|
|
|
@ -113,7 +113,7 @@ symlink_electron()
|
|||
ln -s Electron.app/Contents/MacOS/Electron node_modules/electron/dist/node
|
||||
else
|
||||
ln -s electron "node_modules/electron/dist/node"
|
||||
if [ -f "node_modules/electron/dist/chrome-sandbox" ]; then
|
||||
if [ "${OS}" = "Linux" -a -f "node_modules/electron/dist/chrome-sandbox" ]; then
|
||||
export ELECTRON_DISABLE_SANDBOX=1
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -3,7 +3,10 @@
|
|||
set -xe
|
||||
|
||||
strip() {
|
||||
echo "$(echo $1 | sed -e 's/^[[:space:]]+//' -e 's/[[:space:]]+$//')"
|
||||
# We strip leading carriage return due to ElectronJS on Windows producing stray
|
||||
# characters before its output intermittently.
|
||||
# Then we strip leading and trailing whitespace.
|
||||
echo "$(echo $1 | tr -d $'\r' | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
|
||||
}
|
||||
|
||||
# This verify exact inference result
|
||||
|
@ -220,6 +223,17 @@ assert_correct_ldc93s1_prodmodel()
|
|||
fi;
|
||||
}
|
||||
|
||||
assert_working_ldc93s1_prodmodel()
|
||||
{
|
||||
if [ -z "$3" -o "$3" = "16k" ]; then
|
||||
assert_working_inference "$1" "she had your dark suit in greasy wash water all year" "$2"
|
||||
fi
|
||||
|
||||
if [ "$3" = "8k" ]; then
|
||||
assert_working_inference "$1" "she had to do suit in greasy wash water all year" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
assert_correct_ldc93s1_prodtflitemodel()
|
||||
{
|
||||
if [ -z "$3" -o "$3" = "16k" ]; then
|
||||
|
@ -231,16 +245,37 @@ assert_correct_ldc93s1_prodtflitemodel()
|
|||
fi;
|
||||
}
|
||||
|
||||
assert_working_ldc93s1_prodtflitemodel()
|
||||
{
|
||||
if [ -z "$3" -o "$3" = "16k" ]; then
|
||||
assert_working_inference "$1" "she had her dark suit in greasy wash water all year" "$2"
|
||||
fi;
|
||||
|
||||
if [ "$3" = "8k" ]; then
|
||||
assert_working_inference "$1" "she had to do so and greasy wash water all year" "$2"
|
||||
fi;
|
||||
}
|
||||
|
||||
assert_correct_ldc93s1_prodmodel_stereo_44k()
|
||||
{
|
||||
assert_correct_inference "$1" "she had your dark suit in greasy wash water all year" "$2"
|
||||
}
|
||||
|
||||
assert_working_ldc93s1_prodmodel_stereo_44k()
|
||||
{
|
||||
assert_working_inference "$1" "she had your dark suit in greasy wash water all year" "$2"
|
||||
}
|
||||
|
||||
assert_correct_ldc93s1_prodtflitemodel_stereo_44k()
|
||||
{
|
||||
assert_correct_inference "$1" "she had her dark suit in greasy wash water all year" "$2"
|
||||
}
|
||||
|
||||
assert_working_ldc93s1_prodtflitemodel_stereo_44k()
|
||||
{
|
||||
assert_working_inference "$1" "she had her dark suit in greasy wash water all year" "$2"
|
||||
}
|
||||
|
||||
assert_correct_warning_upsampling()
|
||||
{
|
||||
assert_shows_something "$1" "erratic speech recognition"
|
||||
|
@ -478,6 +513,31 @@ run_prod_inference_tests()
|
|||
fi;
|
||||
}
|
||||
|
||||
# Equivalent to run_prod_inference_tests but we use assert_working* instead of assert_correct
|
||||
# ElectronJS mixes stdout and stderr and exact matching is broken
|
||||
run_electronjs_prod_inference_tests()
|
||||
{
|
||||
local _bitrate=$1
|
||||
|
||||
set +e
|
||||
phrase_pbmodel_withlm=$(stt --model ${CI_TMP_DIR}/${model_name} --scorer ${CI_TMP_DIR}/kenlm.scorer --audio ${CI_TMP_DIR}/${ldc93s1_sample_filename} 2>${CI_TMP_DIR}/stderr)
|
||||
status=$?
|
||||
set -e
|
||||
assert_working_ldc93s1_prodmodel "${phrase_pbmodel_withlm}" "$status" "${_bitrate}"
|
||||
|
||||
set +e
|
||||
phrase_pbmodel_withlm=$(stt --model ${CI_TMP_DIR}/${model_name_mmap} --scorer ${CI_TMP_DIR}/kenlm.scorer --audio ${CI_TMP_DIR}/${ldc93s1_sample_filename} 2>${CI_TMP_DIR}/stderr)
|
||||
status=$?
|
||||
set -e
|
||||
assert_working_ldc93s1_prodmodel "${phrase_pbmodel_withlm}" "$status" "${_bitrate}"
|
||||
|
||||
set +e
|
||||
phrase_pbmodel_withlm_stereo_44k=$(stt --model ${CI_TMP_DIR}/${model_name_mmap} --scorer ${CI_TMP_DIR}/kenlm.scorer --audio ${CI_TMP_DIR}/LDC93S1_pcms16le_2_44100.wav 2>${CI_TMP_DIR}/stderr)
|
||||
status=$?
|
||||
set -e
|
||||
assert_working_ldc93s1_prodmodel_stereo_44k "${phrase_pbmodel_withlm_stereo_44k}" "$status"
|
||||
}
|
||||
|
||||
run_prodtflite_inference_tests()
|
||||
{
|
||||
local _bitrate=$1
|
||||
|
@ -509,6 +569,31 @@ run_prodtflite_inference_tests()
|
|||
fi;
|
||||
}
|
||||
|
||||
# Equivalent to run_prodtflite_inference_tests but we use assert_working* instead of assert_correct
|
||||
# ElectronJS mixes stdout and stderr and exact matching is broken
|
||||
run_electronjs_prodtflite_inference_tests()
|
||||
{
|
||||
local _bitrate=$1
|
||||
|
||||
set +e
|
||||
phrase_pbmodel_withlm=$(stt --model ${CI_TMP_DIR}/${model_name} --scorer ${CI_TMP_DIR}/kenlm.scorer --audio ${CI_TMP_DIR}/${ldc93s1_sample_filename} 2>${CI_TMP_DIR}/stderr)
|
||||
status=$?
|
||||
set -e
|
||||
assert_working_ldc93s1_prodtflitemodel "${phrase_pbmodel_withlm}" "$status" "${_bitrate}"
|
||||
|
||||
set +e
|
||||
phrase_pbmodel_withlm=$(stt --model ${CI_TMP_DIR}/${model_name_mmap} --scorer ${CI_TMP_DIR}/kenlm.scorer --audio ${CI_TMP_DIR}/${ldc93s1_sample_filename} 2>${CI_TMP_DIR}/stderr)
|
||||
status=$?
|
||||
set -e
|
||||
assert_working_ldc93s1_prodtflitemodel "${phrase_pbmodel_withlm}" "$status" "${_bitrate}"
|
||||
|
||||
set +e
|
||||
phrase_pbmodel_withlm_stereo_44k=$(stt --model ${CI_TMP_DIR}/${model_name_mmap} --scorer ${CI_TMP_DIR}/kenlm.scorer --audio ${CI_TMP_DIR}/LDC93S1_pcms16le_2_44100.wav 2>${CI_TMP_DIR}/stderr)
|
||||
status=$?
|
||||
set -e
|
||||
assert_working_ldc93s1_prodtflitemodel_stereo_44k "${phrase_pbmodel_withlm_stereo_44k}" "$status"
|
||||
}
|
||||
|
||||
run_multi_inference_tests()
|
||||
{
|
||||
set +e -o pipefail
|
||||
|
|
|
@ -12,11 +12,11 @@ set_ldc_sample_filename "${bitrate}"
|
|||
model_source=${STT_TEST_MODEL//.pb/.tflite}
|
||||
model_name=$(basename "${model_source}")
|
||||
model_name_mmap=$(basename "${model_source}")
|
||||
export DATA_TMP_DIR=${TASKCLUSTER_TMP_DIR}
|
||||
export DATA_TMP_DIR=${CI_TMP_DIR}
|
||||
|
||||
download_material "${TASKCLUSTER_TMP_DIR}/ds"
|
||||
download_material "${CI_TMP_DIR}/ds"
|
||||
|
||||
export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH
|
||||
export PATH=${CI_TMP_DIR}/ds/:$PATH
|
||||
|
||||
check_versions
|
||||
|
||||
|
|
|
@ -9,9 +9,9 @@ source $(dirname "$0")/asserts.sh
|
|||
bitrate=$1
|
||||
set_ldc_sample_filename "${bitrate}"
|
||||
|
||||
model_source=${DEEPSPEECH_PROD_MODEL}
|
||||
model_source=${STT_PROD_MODEL}
|
||||
model_name=$(basename "${model_source}")
|
||||
model_source_mmap=${DEEPSPEECH_PROD_MODEL_MMAP}
|
||||
model_source_mmap=${STT_PROD_MODEL_MMAP}
|
||||
model_name_mmap=$(basename "${model_source_mmap}")
|
||||
|
||||
download_model_prod
|
||||
|
@ -30,8 +30,8 @@ which node
|
|||
|
||||
node --version
|
||||
|
||||
deepspeech --version
|
||||
stt --version
|
||||
|
||||
check_runtime_electronjs
|
||||
|
||||
run_prod_inference_tests "${bitrate}"
|
||||
run_electronjs_prod_inference_tests "${bitrate}"
|
||||
|
|
|
@ -9,9 +9,9 @@ source $(dirname "$0")/asserts.sh
|
|||
bitrate=$1
|
||||
set_ldc_sample_filename "${bitrate}"
|
||||
|
||||
model_source=${DEEPSPEECH_PROD_MODEL//.pb/.tflite}
|
||||
model_source=${STT_PROD_MODEL//.pb/.tflite}
|
||||
model_name=$(basename "${model_source}")
|
||||
model_source_mmap=${DEEPSPEECH_PROD_MODEL_MMAP//.pbmm/.tflite}
|
||||
model_source_mmap=${STT_PROD_MODEL_MMAP//.pbmm/.tflite}
|
||||
model_name_mmap=$(basename "${model_source}")
|
||||
|
||||
download_model_prod
|
||||
|
@ -30,8 +30,8 @@ which node
|
|||
|
||||
node --version
|
||||
|
||||
deepspeech --version
|
||||
stt --version
|
||||
|
||||
check_runtime_electronjs
|
||||
|
||||
run_prodtflite_inference_tests "${bitrate}"
|
||||
run_electronjs_prodtflite_inference_tests "${bitrate}"
|
||||
|
|
|
@ -26,7 +26,7 @@ package_native_client()
|
|||
win_lib="-C ${tensorflow_dir}/bazel-bin/native_client/ libstt.so.if.lib"
|
||||
fi;
|
||||
|
||||
${TAR} -cf - \
|
||||
${TAR} --verbose -cf - \
|
||||
-C ${tensorflow_dir}/bazel-bin/native_client/ libstt.so \
|
||||
${win_lib} \
|
||||
-C ${tensorflow_dir}/bazel-bin/native_client/ generate_scorer_package \
|
||||
|
@ -60,7 +60,7 @@ package_native_client_ndk()
|
|||
echo "Please specify arch abi."
|
||||
fi;
|
||||
|
||||
${TAR} -cf - \
|
||||
${TAR} --verbose -cf - \
|
||||
-C ${stt_dir}/native_client/libs/${arch_abi}/ stt \
|
||||
-C ${stt_dir}/native_client/libs/${arch_abi}/ libstt.so \
|
||||
-C ${tensorflow_dir}/bazel-bin/native_client/ generate_scorer_package \
|
||||
|
|
|
@ -40,9 +40,8 @@ elif [ "${OS}" = "${CI_MSYS_VERSION}" ]; then
|
|||
export CI_ARTIFACTS_DIR="$(cygpath ${CI_ARTIFACTS_DIR})"
|
||||
|
||||
export DS_ROOT_TASK=${CI_TASK_DIR}
|
||||
export BAZEL_VC='C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC'
|
||||
export BAZEL_SH='C:\builds\tc-workdir\msys64\usr\bin\bash'
|
||||
export TC_WIN_BUILD_PATH='C:\builds\tc-workdir\msys64\usr\bin;C:\Python36'
|
||||
export BAZEL_VC="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC"
|
||||
export BAZEL_VC_FULL_VERSION="14.28.29910"
|
||||
export MSYS2_ARG_CONV_EXCL='//'
|
||||
|
||||
mkdir -p ${CI_TASK_DIR}/tmp/
|
||||
|
|
|
@ -181,7 +181,7 @@ define copy_missing_libs
|
|||
if [ "$(OS)" = "Darwin" ]; then \
|
||||
new_missing="$$( (for f in $$(otool -L $$lib 2>/dev/null | tail -n +2 | awk '{ print $$1 }' | grep -v '$$lib'); do ls -hal $$f; done;) 2>&1 | grep 'No such' | cut -d':' -f2 | xargs basename -a)"; \
|
||||
missing_libs="$$missing_libs $$new_missing"; \
|
||||
elif [ "$(OS)" = "${TC_MSYS_VERSION}" ]; then \
|
||||
elif [ "$(OS)" = "${CI_MSYS_VERSION}" ]; then \
|
||||
missing_libs="libstt.so"; \
|
||||
else \
|
||||
missing_libs="$$missing_libs $$($(LDD) $$lib | grep 'not found' | awk '{ print $$1 }')"; \
|
||||
|
|
Loading…
Reference in New Issue