mirror of
https://github.com/VSCodium/vscodium.git
synced 2026-04-11 16:27:18 +10:00
refactor: reorganize files (#2185)
This commit is contained in:
84
build/alpine/package_reh.sh
Executable file
84
build/alpine/package_reh.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
export VSCODE_PLATFORM='alpine'
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK=1
|
||||
|
||||
VSCODE_HOST_MOUNT="$( pwd )"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:alpine-${VSCODE_ARCH}"
|
||||
|
||||
export VSCODE_HOST_MOUNT VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
|
||||
|
||||
if [[ -d "../patches/alpine/reh/" ]]; then
|
||||
for file in "../patches/alpine/reh/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
echo applying patch: "${file}";
|
||||
if ! git apply --ignore-whitespace "${file}"; then
|
||||
echo failed to apply patch "${file}" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 3 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
yarn gulp minify-vscode-reh
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
PA_NAME="linux-alpine"
|
||||
else
|
||||
PA_NAME="alpine-arm64"
|
||||
fi
|
||||
|
||||
yarn gulp "vscode-reh-${PA_NAME}-min-ci"
|
||||
|
||||
cd ..
|
||||
|
||||
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
echo "Building and moving REH"
|
||||
cd "vscode-reh-${PA_NAME}"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
cd ..
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *; do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
@@ -1,6 +0,0 @@
|
||||
# powershell -ExecutionPolicy ByPass -File .\build\build.ps1
|
||||
|
||||
# first so `bash` is the one installed with `git`, avoid conflict with WSL
|
||||
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
|
||||
|
||||
bash ./build/build.sh
|
||||
154
build/build.sh
154
build/build.sh
@@ -1,154 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091,SC2129
|
||||
|
||||
### Windows
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build.sh
|
||||
###
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export BINARY_NAME="codium"
|
||||
export CI_BUILD="no"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_ASSETS="yes"
|
||||
export SKIP_BUILD="no"
|
||||
export SKIP_SOURCE="no"
|
||||
export VSCODE_LATEST="no"
|
||||
export VSCODE_QUALITY="stable"
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK="yes"
|
||||
|
||||
while getopts ":ilops" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export BINARY_NAME="codium-insiders"
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
l)
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
o)
|
||||
export SKIP_BUILD="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
s)
|
||||
export SKIP_SOURCE="yes"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "${OSTYPE}" in
|
||||
darwin*)
|
||||
export OS_NAME="osx"
|
||||
;;
|
||||
msys* | cygwin*)
|
||||
export OS_NAME="windows"
|
||||
;;
|
||||
*)
|
||||
export OS_NAME="linux"
|
||||
;;
|
||||
esac
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "aarch64" || "${UNAME_ARCH}" == "arm64" ]]; then
|
||||
export VSCODE_ARCH="arm64"
|
||||
elif [[ "${UNAME_ARCH}" == "ppc64le" ]]; then
|
||||
export VSCODE_ARCH="ppc64le"
|
||||
elif [[ "${UNAME_ARCH}" == "riscv64" ]]; then
|
||||
export VSCODE_ARCH="riscv64"
|
||||
elif [[ "${UNAME_ARCH}" == "loongarch64" ]]; then
|
||||
export VSCODE_ARCH="loong64"
|
||||
elif [[ "${UNAME_ARCH}" == "s390x" ]]; then
|
||||
export VSCODE_ARCH="s390x"
|
||||
else
|
||||
export VSCODE_ARCH="x64"
|
||||
fi
|
||||
|
||||
export NODE_OPTIONS="--max-old-space-size=8192"
|
||||
|
||||
echo "OS_NAME=\"${OS_NAME}\""
|
||||
echo "SKIP_SOURCE=\"${SKIP_SOURCE}\""
|
||||
echo "SKIP_BUILD=\"${SKIP_BUILD}\""
|
||||
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
|
||||
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
|
||||
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
|
||||
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
|
||||
|
||||
if [[ "${SKIP_SOURCE}" == "no" ]]; then
|
||||
rm -rf vscode* VSCode*
|
||||
|
||||
. get_repo.sh
|
||||
. version.sh
|
||||
|
||||
# save variables for later
|
||||
echo "MS_TAG=\"${MS_TAG}\"" > build.env
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> build.env
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> build.env
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> build.env
|
||||
else
|
||||
if [[ "${SKIP_ASSETS}" != "no" ]]; then
|
||||
rm -rf vscode-* VSCode-*
|
||||
fi
|
||||
|
||||
. build.env
|
||||
|
||||
echo "MS_TAG=\"${MS_TAG}\""
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_BUILD}" == "no" ]]; then
|
||||
if [[ "${SKIP_SOURCE}" != "no" ]]; then
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
rm -rf .build out*
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
|
||||
echo "Installing custom ~/.gyp/include.gypi"
|
||||
|
||||
mkdir -p ~/.gyp
|
||||
|
||||
if [[ -f "${HOME}/.gyp/include.gypi" ]]; then
|
||||
mv ~/.gyp/include.gypi ~/.gyp/include.gypi.pre-vscodium
|
||||
else
|
||||
echo "{}" > ~/.gyp/include.gypi.pre-vscodium
|
||||
fi
|
||||
|
||||
cp ./include_osx.gypi ~/.gyp/include.gypi
|
||||
fi
|
||||
|
||||
. build.sh
|
||||
|
||||
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
|
||||
mv ~/.gyp/include.gypi.pre-vscodium ~/.gyp/include.gypi
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]]; then
|
||||
jsonTmp=$( cat "${VSCODE_QUALITY}.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
|
||||
echo "${jsonTmp}" > "${VSCODE_QUALITY}.json" && unset jsonTmp
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
if [[ "${OS_NAME}" == "windows" ]]; then
|
||||
rm -rf build/windows/msi/releasedir
|
||||
fi
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" && -f "./macos-codesign.env" ]]; then
|
||||
. macos-codesign.env
|
||||
|
||||
echo "CERTIFICATE_OSX_ID: ${CERTIFICATE_OSX_ID}"
|
||||
fi
|
||||
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
@@ -1,60 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
exists() { type -t "$1" &> /dev/null; }
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export CI_BUILD="no"
|
||||
export OS_NAME="linux"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_ASSETS="yes"
|
||||
export VSCODE_LATEST="no"
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilp" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
l)
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if ! exists yarn; then
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
npm install -g yarn
|
||||
fi
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "x86_64" ]]; then
|
||||
export VSCODE_ARCH="x64"
|
||||
else
|
||||
export npm_config_arch=armv7l
|
||||
export npm_config_force_process_config="true"
|
||||
export VSCODE_ARCH="armhf"
|
||||
fi
|
||||
|
||||
echo "OS_NAME=\"${OS_NAME}\""
|
||||
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
|
||||
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
|
||||
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
|
||||
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
|
||||
|
||||
rm -rf vscode* VSCode*
|
||||
|
||||
. get_repo.sh
|
||||
. build.sh
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
6
build/linux/loong64/electron.sh
Normal file
6
build/linux/loong64/electron.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="32.2.7"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"
|
||||
11
build/linux/loong64/electron.sha256sums
Normal file
11
build/linux/loong64/electron.sha256sums
Normal file
@@ -0,0 +1,11 @@
|
||||
2324198f130de1f5ccff6f216277eafa76fa53883c8297533f0e0c09d96faf31 *chromedriver-v32.2.7-linux-loong64.zip
|
||||
724acd5cde9e747b3765f062b9a243af344faa039f9f0218beed1b0e9455e893 *electron-v32.2.7-linux-loong64-debug.zip
|
||||
dee3600a67cc7f40f0fb4a8938940cb20fba0a95886352145cacc0334baa955e *electron-v32.2.7-linux-loong64-symbols.zip
|
||||
2904bfaa386deddf968dec71c4b4235635daa318bdbb05ae3f3673983242cefe *electron-v32.2.7-linux-loong64.zip
|
||||
e8fb755c82a58d98c70c1d3ac4d9c9c77e42021322b188183a550793ba94afe0 *ffmpeg-v32.2.7-linux-loong64.zip
|
||||
69506c95a7ce4d5270164e0613aec9eb11fdc24f3dc21df3cd78963b764a6b75 *hunspell-dictionaries.zip
|
||||
e02189a00e5170306289ba2bc0c295a9698f76899d812e35fc69fd8e4e4841d2 *libcxx-headers.zip
|
||||
0cc5c76d848d9f572ef4050839876afd8533dc71fc90c319edfffcaa3dca0e01 *libcxx-objects-v32.2.7-linux-loong64.zip
|
||||
caada8fb0a210d660e2150a0fe9f7b84a9e969a5b1110ce2d6b58f5d21637387 *libcxxabi-headers.zip
|
||||
8736592799acdaafae2214156c7755f3249f4fd577fccc3df11bf42a5481aa12 *mksnapshot-v32.2.7-linux-loong64.zip
|
||||
3d80771ab908f55cc61416b8b11d572e777b6c613ad2a7ee7aa8fef8b4ede011 *node-v32.2.7-headers.tar.gz
|
||||
18
build/linux/loong64/ripgrep.sh
Executable file
18
build/linux/loong64/ripgrep.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# When installing @vscode/ripgrep, it will try to download prebuilt ripgrep binary from https://github.com/microsoft/ripgrep-prebuilt,
|
||||
# however, loong64 is not a supported architecture and x86 will be picked as fallback, so we need to replace it with a native one.
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <path_to_node_modules>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RG_PATH="$1/@vscode/ripgrep/bin/rg"
|
||||
RG_VERSION="14.1.1"
|
||||
|
||||
echo "Replacing ripgrep binary with loong64 one"
|
||||
|
||||
rm "${RG_PATH}"
|
||||
curl --silent --fail -L https://github.com/darkyzhou/ripgrep-loongarch64-musl/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
|
||||
chmod +x "${RG_PATH}"
|
||||
133
build/linux/package_bin.sh
Executable file
133
build/linux/package_bin.sh
Executable file
@@ -0,0 +1,133 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
chown -R root:root vscode
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
export VSCODE_PLATFORM='linux'
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK=1
|
||||
export VSCODE_SYSROOT_PREFIX='-glibc-2.17'
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "arm64" || "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20240129-253798'
|
||||
export VSCODE_SYSROOT_PREFIX='-glibc-2.28'
|
||||
export USE_GNUPP2A=1
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_ELECTRON_REPOSITORY='lex-ibm/electron-ppc64le-build-scripts'
|
||||
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
|
||||
export VSCODE_ELECTRON_REPOSITORY='riscv-forks/electron-riscv-releases'
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
|
||||
export VSCODE_ELECTRON_REPOSITORY='darkyzhou/electron-loong64'
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
fi
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sh" ]]; then
|
||||
# add newline at the end of the file
|
||||
echo "" >> build/checksums/electron.txt
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/electron.sha256sums" ]]; then
|
||||
cat "../build/linux/${VSCODE_ARCH}/electron.sha256sums" >> build/checksums/electron.txt
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
source "../build/linux/${VSCODE_ARCH}/electron.sh"
|
||||
|
||||
if [[ "${ELECTRON_VERSION}" != "$( yarn config get target )" ]]; then
|
||||
# Fail the pipeline if electron target doesn't match what is used.
|
||||
echo "Electron ${VSCODE_ARCH} binary version doesn't match target electron version!"
|
||||
echo "Releases available at: https://github.com/${VSCODE_ELECTRON_REPOSITORY}/releases"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -d "../patches/linux/client/" ]]; then
|
||||
for file in "../patches/linux/client/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
echo applying patch: "${file}";
|
||||
if ! git apply --ignore-whitespace "${file}"; then
|
||||
echo failed to apply patch "${file}" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -n "${USE_GNUPP2A}" ]]; then
|
||||
INCLUDES=$(cat <<EOF
|
||||
{
|
||||
"target_defaults": {
|
||||
"conditions": [
|
||||
["OS=='linux'", {
|
||||
'cflags_cc!': [ '-std=gnu++20' ],
|
||||
'cflags_cc': [ '-std=gnu++2a' ],
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ ! -d "$HOME/.gyp" ]; then
|
||||
mkdir -p "$HOME/.gyp"
|
||||
fi
|
||||
|
||||
echo "${INCLUDES}" > "$HOME/.gyp/include.gypi"
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci --prefix build && break
|
||||
if [[ $i == 3 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
|
||||
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
|
||||
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
|
||||
else
|
||||
source ./build/azure-pipelines/linux/setup-env.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i -eq 3 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
if [[ -f "../build/linux/${VSCODE_ARCH}/ripgrep.sh" ]]; then
|
||||
bash "../build/linux/${VSCODE_ARCH}/ripgrep.sh" "../VSCode-linux-${VSCODE_ARCH}/resources/app/node_modules"
|
||||
fi
|
||||
|
||||
find "../VSCode-linux-${VSCODE_ARCH}" -print0 | xargs -0 touch -c
|
||||
|
||||
cd ..
|
||||
220
build/linux/package_reh.sh
Executable file
220
build/linux/package_reh.sh
Executable file
@@ -0,0 +1,220 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
GLIBC_VERSION="2.28"
|
||||
GLIBCXX_VERSION="3.4.26"
|
||||
NODE_VERSION="20.18.1"
|
||||
|
||||
export VSCODE_NODEJS_URLROOT='/download/release'
|
||||
export VSCODE_NODEJS_URLSUFFIX=''
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
GLIBC_VERSION="2.17"
|
||||
GLIBCXX_VERSION="3.4.22"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:centos7-devtoolset8-${VSCODE_ARCH}"
|
||||
|
||||
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
|
||||
export VSCODE_NODEJS_URLSUFFIX='-glibc-217'
|
||||
elif [[ "${VSCODE_ARCH}" == "arm64" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:centos7-devtoolset8-${VSCODE_ARCH}"
|
||||
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "armhf" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-devtoolset-arm32v7"
|
||||
|
||||
export VSCODE_SKIP_SYSROOT=1
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "ppc64le" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:bionic-devtoolset-ppc64le"
|
||||
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20240129-253798'
|
||||
export USE_GNUPP2A=1
|
||||
elif [[ "${VSCODE_ARCH}" == "riscv64" ]]; then
|
||||
NODE_VERSION="20.16.0"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-riscv64"
|
||||
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
|
||||
elif [[ "${VSCODE_ARCH}" == "loong64" ]]; then
|
||||
NODE_VERSION="20.16.0"
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:trixie-devtoolset-loong64"
|
||||
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SKIP_SETUPENV=1
|
||||
export VSCODE_NODEJS_SITE='https://unofficial-builds.nodejs.org'
|
||||
elif [[ "${VSCODE_ARCH}" == "s390x" ]]; then
|
||||
VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME="vscodium/vscodium-linux-build-agent:focal-devtoolset-s390x"
|
||||
|
||||
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
||||
export VSCODE_SYSROOT_REPOSITORY='VSCodium/vscode-linux-build-agent'
|
||||
export VSCODE_SYSROOT_VERSION='20241108'
|
||||
fi
|
||||
|
||||
export VSCODE_PLATFORM='linux'
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK=1
|
||||
export VSCODE_SYSROOT_PREFIX="-glibc-${GLIBC_VERSION}"
|
||||
|
||||
VSCODE_HOST_MOUNT="$( pwd )"
|
||||
|
||||
export VSCODE_HOST_MOUNT
|
||||
export VSCODE_REMOTE_DEPENDENCIES_CONTAINER_NAME
|
||||
|
||||
sed -i "/target/s/\"20.*\"/\"${NODE_VERSION}\"/" remote/.npmrc
|
||||
|
||||
if [[ -d "../patches/linux/reh/" ]]; then
|
||||
for file in "../patches/linux/reh/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
echo applying patch: "${file}";
|
||||
if ! git apply --ignore-whitespace "${file}"; then
|
||||
echo failed to apply patch "${file}" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -d "../patches/linux/reh/${VSCODE_ARCH}/" ]]; then
|
||||
for file in "../patches/linux/reh/${VSCODE_ARCH}/"*.patch; do
|
||||
if [[ -f "${file}" ]]; then
|
||||
echo applying patch: "${file}";
|
||||
if ! git apply --ignore-whitespace "${file}"; then
|
||||
echo failed to apply patch "${file}" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ -n "${USE_GNUPP2A}" ]]; then
|
||||
INCLUDES=$(cat <<EOF
|
||||
{
|
||||
"target_defaults": {
|
||||
"conditions": [
|
||||
["OS=='linux'", {
|
||||
'cflags_cc!': [ '-std=gnu++20' ],
|
||||
'cflags_cc': [ '-std=gnu++2a' ],
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ ! -d "${HOME}/.gyp" ]; then
|
||||
mkdir -p "${HOME}/.gyp"
|
||||
fi
|
||||
|
||||
echo "${INCLUDES}" > "${HOME}/.gyp/include.gypi"
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci --prefix build && break
|
||||
if [[ $i == 3 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
if [[ -z "${VSCODE_SKIP_SETUPENV}" ]]; then
|
||||
if [[ -n "${VSCODE_SKIP_SYSROOT}" ]]; then
|
||||
source ./build/azure-pipelines/linux/setup-env.sh --skip-sysroot
|
||||
else
|
||||
source ./build/azure-pipelines/linux/setup-env.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i == 3 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
export VSCODE_NODE_GLIBC="-glibc-${GLIBC_VERSION}"
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building REH"
|
||||
yarn gulp minify-vscode-reh
|
||||
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
EXPECTED_GLIBC_VERSION="${GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
|
||||
|
||||
pushd "../vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
|
||||
if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then
|
||||
bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "node_modules"
|
||||
fi
|
||||
|
||||
echo "Archiving REH"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building REH-web"
|
||||
yarn gulp minify-vscode-reh-web
|
||||
yarn gulp "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
EXPECTED_GLIBC_VERSION="${GLIBC_VERSION}" EXPECTED_GLIBCXX_VERSION="${GLIBCXX_VERSION}" SEARCH_PATH="../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}" ./build/azure-pipelines/linux/verify-glibc-requirements.sh
|
||||
|
||||
pushd "../vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
|
||||
if [[ -f "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" ]]; then
|
||||
bash "../ripgrep_${VSCODE_PLATFORM}_${VSCODE_ARCH}.sh" "node_modules"
|
||||
fi
|
||||
|
||||
echo "Archiving REH-web"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
|
||||
popd
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo "Calculating checksum for ${1}"
|
||||
checksum -a sha256 "${1}" > "${1}".sha256
|
||||
checksum "${1}" > "${1}".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
cd assets
|
||||
|
||||
for FILE in *; do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
6
build/linux/ppc64le/electron.sh
Normal file
6
build/linux/ppc64le/electron.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="32.2.7"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}"
|
||||
11
build/linux/ppc64le/electron.sha256sums
Normal file
11
build/linux/ppc64le/electron.sha256sums
Normal file
@@ -0,0 +1,11 @@
|
||||
176cbd410925566ed2290d006b4a70de9d7953997d2189e67495fec5ec7648aa *chromedriver-v32.2.7-linux-ppc64le.zip
|
||||
64a683d339b87463cacef142730ac366fa39ee27e017390909a928b9afb81b12 *electron-v32.2.7-linux-ppc64le-debug.zip
|
||||
361b11b83589f64756def0a4982b611fb5220df287cd6c6fc3c9d4c5240a7b87 *electron-v32.2.7-linux-ppc64le-symbols.zip
|
||||
1cba399c82c5baccb0387971a5697920d771bc424bd65fe503289e4d8f72dfa2 *electron-v32.2.7-linux-ppc64le.zip
|
||||
ce41b10c28bd43249cd3b409e081b1c83a2b691381bdd2e3bf208ec40ca176b8 *electron.d.ts
|
||||
9b74c159cbc8e9f80d145117e828066b09a1703961adc4f31703271776132797 *ffmpeg-v32.2.7-linux-ppc64le.zip
|
||||
d8b47b51bb9474e39f9a0024a34a2378e4bdb3ff1ed4366db1752b3c6452afd1 *hunspell_dictionaries.zip
|
||||
0c125463ff1b1bc3e8f16e3fc09052f4061143743acddf478188d08049da4d55 *libcxx-objects-v32.2.7-linux-ppc64le.zip
|
||||
b1fc26b925ba6b896dea50bd471128cfa290c5b19673a62e8775537f6f94514d *libcxx_headers.zip
|
||||
6f00ab500f9418eb788578c67a84422ed5dc962ad9c3be0de1f2931f55066895 *libcxxabi_headers.zip
|
||||
2def4b7386e49bd658dd4f2f147710525423bb5cd3811394af0cf2b5047045ea *mksnapshot-v32.2.7-linux-ppc64le.zip
|
||||
6
build/linux/riscv64/electron.sh
Executable file
6
build/linux/riscv64/electron.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
export ELECTRON_VERSION="32.2.7"
|
||||
export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"
|
||||
11
build/linux/riscv64/electron.sha256sums
Normal file
11
build/linux/riscv64/electron.sha256sums
Normal file
@@ -0,0 +1,11 @@
|
||||
26a3b6958d4b88f8b436b429aa7702d5d3af58ce892fe985c8fd68156e0b33d6 *chromedriver-v32.2.7-linux-riscv64.zip
|
||||
3b1e9b38a722a32c7127a9646b37366ebe20470fbedf17c94e2dd7e388046c26 *electron-v32.2.7-linux-riscv64-debug.tar.zst
|
||||
e9b4738bfd9aa0a9a98ee626e760f230730655bb02185a90a246ba6398c52db3 *electron-v32.2.7-linux-riscv64-symbols.tar.zst
|
||||
e71a432a4e03458b71d2428c812d3119658b61941a59b60d346d281b5c29f827 *electron-v32.2.7-linux-riscv64.zip
|
||||
51982b096a16b6546941710225fd21855a3fe3b83ec0bf69a4b048d9995ddd19 *ffmpeg-v32.2.7-linux-riscv64.zip
|
||||
5455ce9b9a98b349ad95050ca643bfc5312cf4636dd5ec62d475d1a07b2a35a5 *hunspell-dictionaries.zip
|
||||
4f0abd2517c30de0fc3ddcaa881460924b87c6a48e28cffa41e1050e201b17e5 *libcxx-headers.zip
|
||||
3477a9c568c8c65e5a142a2b4408aec19edda2de9ba303e4aec77eef41aeea10 *libcxx-objects-v32.2.7-linux-riscv64.zip
|
||||
01ff628652bc485ce6bf41b975e15339b246771f5f9d1de79ba24d79a00e840a *libcxxabi-headers.zip
|
||||
8d47b32d2cd3d57fab542de097a10f5f632a958902172a8993fe390a6089f778 *mksnapshot-v32.2.7-linux-riscv64.zip
|
||||
29229408ca301a90be7f7862ac3efec932b198105c44e668f1b3eb6bf043198e *node-v32.2.7-headers.tar.gz
|
||||
18
build/linux/riscv64/ripgrep.sh
Executable file
18
build/linux/riscv64/ripgrep.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# microsoft/ripgrep-prebuilt doesn't support riscv64.
|
||||
# Tracking PR: https://github.com/microsoft/ripgrep-prebuilt/pull/41
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <path_to_node_modules>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RG_PATH="$1/@vscode/ripgrep/bin/rg"
|
||||
RG_VERSION="14.1.1-3"
|
||||
|
||||
echo "Replacing ripgrep binary with riscv64 one"
|
||||
|
||||
rm "${RG_PATH}"
|
||||
curl --silent --fail -L https://github.com/riscv-forks/ripgrep-riscv64-prebuilt/releases/download/${RG_VERSION}/rg -o "${RG_PATH}"
|
||||
chmod +x "${RG_PATH}"
|
||||
11
build/osx/include.gypi
Normal file
11
build/osx/include.gypi
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
'target_defaults': {
|
||||
'conditions': [
|
||||
['OS=="mac"', {
|
||||
'xcode_settings': {
|
||||
'OTHER_CPLUSPLUSFLAGS': ['-std=c++20']
|
||||
}
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
URL=$( curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/' )
|
||||
# echo "url: ${URL}"
|
||||
FILE="${URL##*/}"
|
||||
# echo "file: ${FILE}"
|
||||
DIRECTORY="${FILE%.zip}"
|
||||
# echo "directory: ${DIRECTORY}"
|
||||
|
||||
if [[ ! -f "${FILE}" ]]; then
|
||||
wget "${URL}"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${DIRECTORY}" ]]; then
|
||||
unzip "${FILE}" -d "${DIRECTORY}"
|
||||
fi
|
||||
|
||||
APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/resources/app/product.json" )
|
||||
|
||||
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}' )
|
||||
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-wsl": ["resolvers", "contribRemoteHelp", "contribViewsRemote"]}' )
|
||||
|
||||
jsonTmp=$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )
|
||||
echo "${jsonTmp}" > product.json && unset jsonTmp
|
||||
@@ -1,80 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
check_file() {
|
||||
while [ $# -gt 1 ]; do
|
||||
git apply --reject "${1}"
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo applying patch: "${1}"
|
||||
if ! git apply --ignore-whitespace "${1}"; then
|
||||
echo failed to apply patch "${1}"
|
||||
|
||||
git apply --reject "${1}"
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
|
||||
read -rp "Press any key when the conflict have been resolved..." -n1 -s
|
||||
|
||||
git restore .vscode/settings.json
|
||||
git add .
|
||||
git diff --staged -U1 > "${1}"
|
||||
fi
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
fi
|
||||
}
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
for FILE in ../patches/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
for FILE in ../patches/insider/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
fi
|
||||
|
||||
for ARCH in alpine linux osx windows; do
|
||||
for FILE in "../patches/${ARCH}/"*.patch; do
|
||||
if [[ "${FILE}" != *"/arch-"* ]]; then
|
||||
check_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${ARCH}" == "linux" ]]; then
|
||||
check_file "../patches/linux/arch-0-support.patch"
|
||||
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch"
|
||||
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch"
|
||||
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch"
|
||||
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch" "../patches/linux/arch-4-s390x.patch"
|
||||
fi
|
||||
|
||||
for TARGET in client reh; do
|
||||
for FILE in "../patches/${ARCH}/${TARGET}/"*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
|
||||
for FILE in "../patches/${ARCH}/${TARGET}/"*/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
done
|
||||
done
|
||||
43
build/windows/package.sh
Executable file
43
build/windows/package.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xzf ./vscode.tar.gz
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
for i in {1..5}; do # try 5 times
|
||||
npm ci && break
|
||||
if [[ $i -eq 3 ]]; then
|
||||
echo "Npm install failed too many times" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Npm install failed $i, trying again..."
|
||||
done
|
||||
|
||||
node build/azure-pipelines/distro/mixin-npm
|
||||
|
||||
. ../build/windows/rtf/make.sh
|
||||
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building REH"
|
||||
yarn gulp minify-vscode-reh
|
||||
yarn gulp "vscode-reh-win32-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building REH-web"
|
||||
yarn gulp minify-vscode-reh-web
|
||||
yarn gulp "vscode-reh-web-win32-${VSCODE_ARCH}-min-ci"
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
219
build/windows/prepare_assets.sh
Executable file
219
build/windows/prepare_assets.sh
Executable file
@@ -0,0 +1,219 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
set -e
|
||||
|
||||
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
|
||||
|
||||
mkdir -p assets
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
RUNNER_TEMP="${TMPDIR}"
|
||||
fi
|
||||
|
||||
CERTIFICATE_P12="${APP_NAME}.p12"
|
||||
KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain"
|
||||
AGENT_TEMPDIRECTORY="${RUNNER_TEMP}"
|
||||
# shellcheck disable=SC2006
|
||||
KEYCHAINS=`security list-keychains | xargs`
|
||||
|
||||
rm -f "${KEYCHAIN}"
|
||||
|
||||
echo "${CERTIFICATE_OSX_P12_DATA}" | base64 --decode > "${CERTIFICATE_P12}"
|
||||
|
||||
echo "+ create temporary keychain"
|
||||
security create-keychain -p pwd "${KEYCHAIN}"
|
||||
security set-keychain-settings -lut 21600 "${KEYCHAIN}"
|
||||
security unlock-keychain -p pwd "${KEYCHAIN}"
|
||||
# shellcheck disable=SC2086
|
||||
security list-keychains -s $KEYCHAINS "${KEYCHAIN}"
|
||||
# security show-keychain-info "${KEYCHAIN}"
|
||||
|
||||
echo "+ import certificate to keychain"
|
||||
security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_P12_PASSWORD}" -T /usr/bin/codesign
|
||||
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd "${KEYCHAIN}" > /dev/null
|
||||
# security find-identity "${KEYCHAIN}"
|
||||
|
||||
CODESIGN_IDENTITY="$( security find-identity -v -p codesigning "${KEYCHAIN}" | grep -oEi "([0-9A-F]{40})" | head -n 1 )"
|
||||
|
||||
echo "+ signing"
|
||||
export CODESIGN_IDENTITY AGENT_TEMPDIRECTORY
|
||||
|
||||
DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.js "$( pwd )"
|
||||
# codesign --display --entitlements :- ""
|
||||
|
||||
echo "+ notarize"
|
||||
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
ZIP_FILE="./${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip"
|
||||
|
||||
zip -r -X -y "${ZIP_FILE}" ./*.app
|
||||
|
||||
xcrun notarytool store-credentials "${APP_NAME}" --apple-id "${CERTIFICATE_OSX_ID}" --team-id "${CERTIFICATE_OSX_TEAM_ID}" --password "${CERTIFICATE_OSX_APP_PASSWORD}" --keychain "${KEYCHAIN}"
|
||||
# xcrun notarytool history --keychain-profile "${APP_NAME}" --keychain "${KEYCHAIN}"
|
||||
xcrun notarytool submit "${ZIP_FILE}" --keychain-profile "${APP_NAME}" --wait --keychain "${KEYCHAIN}"
|
||||
|
||||
echo "+ attach staple"
|
||||
xcrun stapler staple ./*.app
|
||||
# spctl --assess -vv --type install ./*.app
|
||||
|
||||
rm "${ZIP_FILE}"
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Building and moving ZIP"
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
zip -r -X -y "../assets/${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ./*.app
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
|
||||
echo "Building and moving DMG"
|
||||
pushd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
npx create-dmg ./*.app .
|
||||
mv ./*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg"
|
||||
popd
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_SRC}" == "yes" ]]; then
|
||||
git archive --format tar.gz --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" HEAD
|
||||
git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD
|
||||
fi
|
||||
|
||||
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then
|
||||
echo "+ clean"
|
||||
security delete-keychain "${KEYCHAIN}"
|
||||
# shellcheck disable=SC2086
|
||||
security list-keychains -s $KEYCHAINS
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="darwin"
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
7z.exe a -tzip "../assets/${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" -x!CodeSignSummary*.md -x!tools "../VSCode-win32-${VSCODE_ARCH}/*" -r
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
. ../build/windows/msi/build.sh
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
. ../build/windows/msi/build-updates-disabled.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
echo "Moving System EXE"
|
||||
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
echo "Moving User EXE"
|
||||
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
echo "Moving MSI"
|
||||
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
echo "Moving MSI with disabled updates"
|
||||
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" assets/
|
||||
fi
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="win32"
|
||||
else
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" && "${VSCODE_ARCH}" != "x64" ]]; then
|
||||
SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
. ../build/linux/appimage/build.sh
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
if [[ "${CI_BUILD}" == "no" ]]; then
|
||||
. ./stores/snapcraft/build.sh
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
mv stores/snapcraft/build/*.snap assets/
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
|
||||
echo "Building and moving TAR"
|
||||
cd "VSCode-linux-${VSCODE_ARCH}"
|
||||
tar czf "../assets/${APP_NAME}-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
|
||||
echo "Moving DEB"
|
||||
mv vscode/.build/linux/deb/*/deb/*.deb assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
echo "Moving RPM"
|
||||
mv vscode/.build/linux/rpm/*/*.rpm assets/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
echo "Moving AppImage"
|
||||
mv build/linux/appimage/out/*.AppImage* assets/
|
||||
|
||||
find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
|
||||
fi
|
||||
|
||||
VSCODE_PLATFORM="linux"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
|
||||
echo "Building and moving REH"
|
||||
cd "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_REH_WEB}" != "no" ]]; then
|
||||
echo "Building and moving REH-web"
|
||||
cd "vscode-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
|
||||
tar czf "../assets/${APP_NAME_LC}-reh-web-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${OS_NAME}" != "windows" ]]; then
|
||||
./prepare_checksums.sh
|
||||
fi
|
||||
Reference in New Issue
Block a user