From 16161abd80e4dcf9c9f2365b764b22aa785ea958 Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Thu, 2 Apr 2020 18:01:30 +0200 Subject: [PATCH 1/2] Moved the native opus codec into the web directory --- asm/libraries/opus | 1 - file.ts | 2 +- {asm => web/native-codec}/.gitignore | 0 {asm => web/native-codec}/CMakeLists.txt | 0 {asm => web/native-codec}/build.sh | 0 {asm => web/native-codec}/download_compiled_files.sh | 0 {asm => web/native-codec}/init.js | 0 {asm => web/native-codec}/src/opus.cpp | 0 webpack-web.config.ts | 2 +- 9 files changed, 2 insertions(+), 3 deletions(-) delete mode 160000 asm/libraries/opus rename {asm => web/native-codec}/.gitignore (100%) rename {asm => web/native-codec}/CMakeLists.txt (100%) rename {asm => web/native-codec}/build.sh (100%) rename {asm => web/native-codec}/download_compiled_files.sh (100%) rename {asm => web/native-codec}/init.js (100%) rename {asm => web/native-codec}/src/opus.cpp (100%) diff --git a/asm/libraries/opus b/asm/libraries/opus deleted file mode 160000 index 923bebde..00000000 --- a/asm/libraries/opus +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 923bebde197f42ba8e55cb055dce3ff22bbea54d diff --git a/file.ts b/file.ts index ca3bd5c3..3f3742be 100644 --- a/file.ts +++ b/file.ts @@ -160,7 +160,7 @@ const APP_FILE_LIST_WEB_SOURCE: ProjectResource[] = [ "build-target": "dev|rel", "path": "wasm/", - "local-path": "./asm/generated/" + "local-path": "./web/native-codec/generated/" }, { /* web css files */ "web-only": true, diff --git a/asm/.gitignore b/web/native-codec/.gitignore similarity index 100% rename from asm/.gitignore rename to web/native-codec/.gitignore diff --git a/asm/CMakeLists.txt b/web/native-codec/CMakeLists.txt similarity index 100% rename from asm/CMakeLists.txt rename to web/native-codec/CMakeLists.txt diff --git a/asm/build.sh b/web/native-codec/build.sh similarity index 100% rename from asm/build.sh rename to web/native-codec/build.sh diff --git a/asm/download_compiled_files.sh b/web/native-codec/download_compiled_files.sh similarity index 100% rename from asm/download_compiled_files.sh rename to web/native-codec/download_compiled_files.sh diff --git a/asm/init.js b/web/native-codec/init.js similarity index 100% rename from asm/init.js rename to web/native-codec/init.js diff --git a/asm/src/opus.cpp b/web/native-codec/src/opus.cpp similarity index 100% rename from asm/src/opus.cpp rename to web/native-codec/src/opus.cpp diff --git a/webpack-web.config.ts b/webpack-web.config.ts index 214bd42c..23c50627 100644 --- a/webpack-web.config.ts +++ b/webpack-web.config.ts @@ -10,7 +10,7 @@ Object.assign(config.resolve.alias, { "tc-shared": path.resolve(__dirname, "shared/js"), "tc-backend/web": path.resolve(__dirname, "web/js"), "tc-backend": path.resolve(__dirname, "web/js"), - "tc-generated/codec/opus": path.resolve(__dirname, "asm/generated/TeaWeb-Worker-Codec-Opus.js"), + "tc-generated/codec/opus": path.resolve(__dirname, "web/native-codec/generated/TeaWeb-Worker-Codec-Opus.js"), }); export = config; \ No newline at end of file From dc4c020b613ea6f4e70da2d35541548d56d19498 Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Thu, 2 Apr 2020 22:53:48 +0200 Subject: [PATCH 2/2] Fixing travis build script --- .gitignore | 1 + .travis.yml | 21 +- package-lock.json | 370 +++++++++++++++++++++++++++++------- scripts/build.sh | 2 +- scripts/resolve_commands.sh | 5 +- scripts/travis.sh | 217 +++++++++++++++++++++ scripts/web_package.sh | 8 +- tools/dtsgen/tsconfig.json | 2 +- tools/trgen/tsconfig.json | 2 +- web/native-codec/build.sh | 4 +- 10 files changed, 543 insertions(+), 89 deletions(-) create mode 100644 scripts/travis.sh diff --git a/.gitignore b/.gitignore index d12c83bc..f921f131 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ node_modules/ # Some build output /dist/ /declarations/ +/travis-build/ # Don't add the created packages to git /TeaSpeakUI.tar.gz diff --git a/.travis.yml b/.travis.yml index c15d192d..55a7aad0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,19 +1,24 @@ sudo: true dist: trusty +language: node_js +node_js: + - "12" + services: - docker before_install: - - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin - - docker pull $DOCKER_USERNAME/teaweb:build_new + # If ever run on windows make sure you don't run this in the git bash! + - docker run -dit --name emscripten -v "$(pwd)":"/src/" trzeci/emscripten:sdk-incoming-64bit bash + +script: jobs: include: - - stage: "build" - name: TeaWeb build master branch + - stage: "build-devel" + name: TeaWeb build react-tree branch script: - - "mkdir -p /tmp/build" - - "docker run --rm -v /tmp/build/logs/:/build/logs/ -v /tmp/build/packages/:/build/packages/ -v `pwd`:/build/TeaWeb $DOCKER_USERNAME/teaweb:build_new --enable-release --enable-debug || travis_terminate 1;" - - "./scripts/travis_deploy.sh || travis_terminate 1;" - if: branch = master \ No newline at end of file + - "./scripts/travis.sh --enable-release --enable-debug || travis_terminate 1;" + # - "./scripts/travis_deploy.sh || travis_terminate 1;" + if: branch = react-tree \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 0f5e54ff..8db3558d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -418,6 +418,24 @@ "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", "dev": true }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } + } + }, "ajv": { "version": "6.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", @@ -1117,26 +1135,29 @@ "dev": true }, "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", + "chownr": "^1.1.2", "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" }, "dependencies": { "lru-cache": { @@ -1148,11 +1169,14 @@ "yallist": "^3.0.2" } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } }, "yallist": { "version": "3.1.1", @@ -1350,6 +1374,12 @@ "source-map": "~0.6.0" } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, "clean-webpack-plugin": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", @@ -2618,14 +2648,59 @@ } }, "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } } }, "find-up": { @@ -3044,6 +3119,15 @@ "universalify": "^0.1.0" } }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", @@ -5010,6 +5094,33 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, + "jest-worker": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.6.tgz", + "integrity": "sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "js-base64": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", @@ -5255,19 +5366,18 @@ } }, "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^6.0.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } @@ -5716,6 +5826,12 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -5832,6 +5948,50 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", + "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", @@ -8359,12 +8519,13 @@ } }, "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" } }, "stack-trace": { @@ -8610,33 +8771,20 @@ } }, "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz", + "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==", "dev": true, "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", + "cacache": "^13.0.1", + "find-cache-dir": "^3.2.0", + "jest-worker": "^25.1.0", + "p-limit": "^2.2.2", + "schema-utils": "^2.6.4", "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } + "terser": "^4.4.3", + "webpack-sources": "^1.4.3" } }, "through2": { @@ -8883,15 +9031,6 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "ttypescript": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.10.tgz", - "integrity": "sha512-Hk7TRej1hM+p+Fo+Pyb/XK9pe9CAt3Sh5n5YRutxFS8hUgkh2u1Vd2K40kMcNP3WYhiVFBMqXwM/2E8O95Ep6g==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -9720,6 +9859,29 @@ } } }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -9871,6 +10033,17 @@ } } }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -9932,6 +10105,25 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -9978,6 +10170,12 @@ "minimist": "^1.2.5" } }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -9988,6 +10186,44 @@ "ajv-errors": "^1.0.0", "ajv-keywords": "^3.1.0" } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, diff --git a/scripts/build.sh b/scripts/build.sh index 26ea18e1..bbba55c8 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -56,7 +56,7 @@ if [[ $_exit_code -ne 0 ]]; then fi echo "Compile vendor XBBCode" -execute_ttsc -p ./vendor/xbbcode/tsconfig.json; _exit_code=$? +execute_tsc -p ./vendor/xbbcode/tsconfig.json; _exit_code=$? if [[ $_exit_code -ne 0 ]]; then echo "Failed to build the XBBCode vendor" exit 1 diff --git a/scripts/resolve_commands.sh b/scripts/resolve_commands.sh index 280ba780..c552df67 100644 --- a/scripts/resolve_commands.sh +++ b/scripts/resolve_commands.sh @@ -1,13 +1,10 @@ #!/usr/bin/env bash function execute_tsc() { + # shellcheck disable=SC2068 execute_npm_command tsc $@ } -function execute_ttsc() { - execute_npm_command ttsc $@ -} - function execute_npm_command() { command_name=$1 command_variable="command_$command_name" diff --git a/scripts/travis.sh b/scripts/travis.sh new file mode 100644 index 00000000..26846a06 --- /dev/null +++ b/scripts/travis.sh @@ -0,0 +1,217 @@ +#!/bin/bash + +LOG_FILE="auto-build/logs/build.log" +build_verbose=1 +build_release=1 +build_debug=0 + +function print_help() { + echo "Possible arguments:" + echo " --verbose=[yes|no] | Enable verbose build output (Default: $build_verbose)" + echo " --enable-release=[yes|no] | Enable release build (Default: $build_release)" + echo " --enable-debug=[yes|no] | Enable debug build (Default: $build_debug)" +} + +function parse_arguments() { + # Preprocess the help parameter + for argument in "$@"; do + if [[ "$argument" = "--help" ]] || [[ "$argument" = "-h" ]]; then + print_help + exit 1 + fi + done + + shopt -s nocasematch + for argument in "$@"; do + echo "Argument: $argument" + if [[ "$argument" =~ ^--verbose(=(y|1)?[[:alnum:]]*$)?$ ]]; then + build_verbose=0 + if [[ -z "${BASH_REMATCH[1]}" ]] || [[ -n "${BASH_REMATCH[2]}" ]]; then + build_verbose=1 + fi + + if [[ ${build_verbose} ]]; then + echo "Enabled verbose output" + fi + elif [[ "$argument" =~ ^--enable-release(=(y|1)?[[:alnum:]]*$)?$ ]]; then + build_release=0 + if [[ -z "${BASH_REMATCH[1]}" ]] || [[ -n "${BASH_REMATCH[2]}" ]]; then + build_release=1 + fi + + if [[ ${build_release} ]]; then + echo "Enabled release build!" + fi + elif [[ "$argument" =~ ^--enable-debug(=(y|1)?[[:alnum:]]*$)?$ ]]; then + build_debug=0 + if [[ -z "${BASH_REMATCH[1]}" ]] || [[ -n "${BASH_REMATCH[2]}" ]]; then + build_debug=1 + fi + + if [[ ${build_debug} ]]; then + echo "Enabled debug build!" + fi + fi + done +} + +function execute() { + time_begin=$(date +%s%N) + + #Execute the command + if [[ "$#" -gt 2 ]]; then + echo "[EXECUTE] Executing commands:" >> ${LOG_FILE} + for command in "${@:2}"; do + echo "[EXECUTE] $command" >> ${LOG_FILE} + done + else + echo "[EXECUTE] Executing command \"$2\"" >> ${LOG_FILE} + fi + + for command in "${@:2}"; do + echo "$> $command" >> ${LOG_FILE} + if [[ ${build_verbose} -gt 0 ]]; then + echo "$> $command" + fi + + error="" + if [[ ${build_verbose} -gt 0 ]]; then + if [[ -f ${LOG_FILE}.tmp ]]; then + rm ${LOG_FILE}.tmp + fi + eval "${command}" |& tee ${LOG_FILE}.tmp | grep -E '^[^(/\S*/libstdc++.so\S*: no version information available)].*' + + error_code=${PIPESTATUS[0]} + error=$(cat ${LOG_FILE}.tmp) + rm ${LOG_FILE}.tmp + else + error=$(eval "${command}" 2>&1) + error_code=$? + echo "$error" >> ${LOG_FILE} + fi + + + if [[ ${error_code} -ne 0 ]]; then + break + fi + done + + #Log the result + time_end=$(date +%s%N) + time_needed=$((time_end - time_begin)) + time_needed_ms=$((time_needed / 1000000)) + echo "[EXECUTE] Command exited with exit code $error_code (Runtime ${time_needed_ms}ms)" >> ${LOG_FILE} + + if [[ ${error_code} -ne 0 ]]; then + handle_failure ${error_code} "$1" + fi + + echo "Command execution required ${time_needed_ms}ms" + error="" +} + +function handle_failure() { + # We cut of the nasty "node: /usr/lib/libstdc++.so.6: no version information available (required by node)" message + echo "--------------------------- [ERROR] ---------------------------" + echo "We've encountered an fatal error, which isn't recoverable!" + echo " Aborting build process!" + echo "" + echo "Exit code : $1" + echo "Error message: ${*:2}" + if [[ ${build_verbose} -eq 0 ]] && [[ "$error" != "" ]]; then + echo "Command log: (lookup \"${LOG_FILE}\" for detailed output!)" + echo "$error" | grep -v 'libstdc++.so\S*: no version information available' + fi + echo "--------------------------- [ERROR] ---------------------------" + exit 1 +} + +cd "$(dirname "$0")/.." || { echo "Failed to enter base dir"; exit 1; } +error="" + +LOG_FILE="$(pwd)/$LOG_FILE" +if [[ ! -d $(dirname "${LOG_FILE}") ]]; then + mkdir -p "$(dirname "${LOG_FILE}")" +fi + +echo "Script arguments: $* ($#)" +if [[ "$1" == "bash" ]]; then + bash + exit 0 +fi + +parse_arguments "${@:1}" + +if [[ -e "$LOG_FILE" ]]; then + rm "$LOG_FILE" +fi + +echo "Updating project and submodules" +execute \ + "Failed to update submodules" \ + "git pull" \ + "git submodule update --init --recursive --remote --checkout" \ + "git status &>/dev/null" #We need this to "attach" to git else the git diff dosn't work + + +echo "---------- Native modules ---------- " +echo "Updating NPM" +execute \ + "Failed to update npm" \ + "npm install" + +execute \ + "Failed to build native opus codec" \ + "docker exec emscripten bash -c 'web/native-codec/build.sh'" + +echo "---------- Web client ----------" + +function move_target_file() { + file_name=$(ls -1t | grep -E "^TeaWeb-.*\.zip$" | head -n 1) + if [[ -z "$file_name" ]]; then + handle_failure -1 "Failed to find target file" + fi + + target_file="../packages/$file_name" + if [[ -f "$target_file" ]]; then + echo "Removing old packed file located at $target_file" + rm "${target_file}" && handle_failure -1 "Failed to remove target file" + fi + mv "${file_name}" "${target_file}" + echo "Moved target file to $target_file" +} + +function execute_build_release() { + echo "Building release package" + execute \ + "Failed to build release" \ + "./scripts/build.sh web release" + + echo "Packaging release" + execute \ + "Failed to package release" \ + "./scripts/web_package.sh release" + + move_target_file +} +function execute_build_debug() { + echo "Building debug package" + execute \ + "Failed to build debug" \ + "./scripts/build.sh web dev" + + echo "Packaging release" + execute \ + "Failed to package debug" \ + "./scripts/web_package.sh dev" + + move_target_file +} + +if [[ ${build_release} ]]; then + execute_build_release +fi +if [[ ${build_debug} ]]; then + execute_build_debug +fi +exit 0 \ No newline at end of file diff --git a/scripts/web_package.sh b/scripts/web_package.sh index 091e6d9e..00937363 100644 --- a/scripts/web_package.sh +++ b/scripts/web_package.sh @@ -26,8 +26,7 @@ fi response=$(git diff-index HEAD -- . ':!asm/libraries/' ':!package-lock.json' ':!vendor/') if [[ "$response" != "" ]]; then - echo "You're using a private modified build!" - echo "Cant assign git hash!" + echo "You're using a private modified build! Cant assign git hash!" NAME="TeaWeb-${type}.zip" else NAME="TeaWeb-${type}-$(git rev-parse --short HEAD).zip" @@ -41,7 +40,8 @@ fi current_path=$(pwd) cd "$source_path" || { echo "Failed to enter source path"; exit 1; } -if zip -9 -r "${NAME}" ./*; then +zip -9 -r "${NAME}" ./*; _exit_code=$? +if [[ $_exit_code -ne 0 ]]; then echo "Failed to package environment!" exit 1 fi @@ -50,4 +50,4 @@ cd "$current_path" || { echo "Failed to reenter source path"; exit 1; } mv "${source_path}/${NAME}" . echo "Release package successfully packaged!" -echo "Target file: ${NAME}" \ No newline at end of file +echo "Target file: ${NAME} ($(pwd))" \ No newline at end of file diff --git a/tools/dtsgen/tsconfig.json b/tools/dtsgen/tsconfig.json index 7e1c4023..2d0faa7d 100644 --- a/tools/dtsgen/tsconfig.json +++ b/tools/dtsgen/tsconfig.json @@ -3,7 +3,7 @@ "baseUrl": ".", "moduleResolution": "node", "module": "commonjs", - "lib": ["es6", "dom"], + "lib": ["es6", "dom"] /* "typeRoots": [], diff --git a/tools/trgen/tsconfig.json b/tools/trgen/tsconfig.json index 1c724691..369ed267 100644 --- a/tools/trgen/tsconfig.json +++ b/tools/trgen/tsconfig.json @@ -14,6 +14,6 @@ "compiler.ts", "jsrender_generator.ts", "ts_generator.ts", - "ttsc_transformer.ts" + //"ttsc_transformer.ts" ] } \ No newline at end of file diff --git a/web/native-codec/build.sh b/web/native-codec/build.sh index d78e2bad..5f00259c 100644 --- a/web/native-codec/build.sh +++ b/web/native-codec/build.sh @@ -1,8 +1,6 @@ #!/bin/bash -[[ ! -d libraries/opus/out/ ]] && { echo "Missing opus build. Please build it before!"; exit 1; } -[[ ! -f libraries/opus/out/lib/libopus.a ]] && { echo "Missing opus static library. Please unsure your opus build was successfull."; exit 1; } - +cd "$(dirname "$0")" || { echo "Failed to enter base dir"; exit 1; } [[ -d build_ ]] && { rm -r build_ || { echo "failed to remove old build directory"; exit 1; } }