blob: ae21a4fe4b7560e189c4b03223a8d8cf60e95cd4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(
cd -- "$(dirname "$0")/../.." >/dev/null 2>&1
pwd -P
)"
cd "$ROOT"
RELEASE_FILE_NAME=${GITHUB_RUN_NUMBER}
RELEASE_NAME=gh-${RELEASE_FILE_NAME}
HASH=$(git rev-parse HEAD)
# Clear the output
rm -rf out
mkdir -p out/dist
cd out/dist
echo "${HASH}" >git_hash
echo "${RELEASE_NAME}" >release_build
cp -R "${ROOT}"/etc \
"${ROOT}"/examples \
"${ROOT}"/views \
"${ROOT}"/types \
"${ROOT}"/package*.json \
.
rm -rf "${ROOT}"/lib/storage/data
# Set up and build and webpack everything
cd "${ROOT}"
npm install --no-audit
npm run webpack
npm run ts-compile
# Now install only the production dependencies in our output directory
cd out/dist
npm install --no-audit --ignore-scripts --production
# Add arm64 packages
npm install --no-audit --ignore-scripts --production --cpu arm64
rm -rf node_modules/.cache/ node_modules/monaco-editor/
find node_modules -name \*.ts -delete
# Output some magic for GH to set the branch name and release name
echo "branch=${GITHUB_REF#refs/heads/}" >> "${GITHUB_OUTPUT}"
echo "release_name=${RELEASE_NAME}" >> "${GITHUB_OUTPUT}"
# Run to make sure we haven't just made something that won't work
node --no-warnings=ExperimentalWarning --loader ts-node/esm ./app.js --version --dist
rm -rf "${ROOT}/out/dist-bin"
mkdir -p "${ROOT}/out/dist-bin"
export XZ_OPT="-1 -T 0"
tar -Jcf "${ROOT}/out/dist-bin/${RELEASE_FILE_NAME}.tar.xz" .
pushd "${ROOT}/out/webpack"
tar -Jcf "${ROOT}/out/dist-bin/${RELEASE_FILE_NAME}.static.tar.xz" --transform="s,^static/,," static/*
popd
echo "${HASH}" >"${ROOT}/out/dist-bin/${RELEASE_FILE_NAME}.txt"
du -ch ./*
|