mirror of
https://github.com/zulip/zulip.git
synced 2026-06-30 21:11:04 +08:00
Replace a separate call to subprocess, starting `node` from scratch, with an optional standalone node Express service which performs the rendering. In benchmarking, this reduces the overhead of a KaTeX call from 120ms to 2.8ms. This is notable because enough calls to KaTeX in a single message would previously time out the whole message rendering. The service is optional because he majority of deployments do not use enough LaTeX to merit the additional memory usage (60Mb). Fixes: #17425.
54 lines
2.0 KiB
Bash
Executable File
54 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# In short, this provisions a Zulip development environment and then
|
|
# builds a Zulip release tarball (the same way we build them for an
|
|
# actual release). The actual test job will then install that.
|
|
|
|
set -e
|
|
set -x
|
|
|
|
# Provisioning may fail due to many issues but most of the times a network
|
|
# connection issue is the reason. So we are going to retry entire provisioning
|
|
# once again if that fixes our problem.
|
|
tools/provision --build-release-tarball-only || {
|
|
ret=$?
|
|
if [ "$ret" = 1 ]; then
|
|
echo "\`provision\`: Something went wrong with the provisioning, might be a network issue, Retrying to provision..."
|
|
tools/provision --build-release-tarball-only
|
|
else
|
|
echo "\`provision\`: Something REALLY BAD went wrong with the provisioning, not retrying."
|
|
exit "$ret"
|
|
fi
|
|
}
|
|
|
|
source tools/ci/activate-venv
|
|
|
|
if ! ./tools/build-release-tarball test; then
|
|
echo "Attempting to output failure logging data"
|
|
cat /tmp/tmp.*/update-prod-static.log || true
|
|
exit 1
|
|
fi
|
|
|
|
# Move all the required artifacts to /tmp/production-build
|
|
# that will be later sent down to downstream install jobs.
|
|
mkdir /tmp/production-build
|
|
mv /tmp/tmp.*/zulip-server-test.tar.gz /tmp/production-build
|
|
cp -a \
|
|
tools/ci/success-http-headers.template.txt \
|
|
tools/ci/production-install \
|
|
tools/ci/production-verify \
|
|
tools/ci/production-upgrade \
|
|
tools/ci/production-pgroonga \
|
|
tools/ci/production-upgrade-pg \
|
|
tools/ci/generate-failure-message \
|
|
package.json pnpm-lock.yaml \
|
|
/tmp/production-build
|
|
|
|
# Check that webpack bundles use only ES2020 syntax.
|
|
# Use the pnpm binary installed by tools/provision.
|
|
PNPM="/usr/local/bin/pnpm"
|
|
tar -C /tmp -xzf /tmp/production-build/zulip-server-test.tar.gz zulip-server-test/prod-static/serve/webpack-bundles
|
|
(
|
|
GLOBIGNORE="/tmp/zulip-server-test/prod-static/serve/webpack-bundles/katex*.js"
|
|
"$PNPM" exec es-check es2020 /tmp/zulip-server-test/prod-static/serve/webpack-bundles/*.js
|
|
)
|