bdd11f741b
Also too the opportunity to rewrite the build script since there was a change in the build steps (mainly how the product JSON is inserted) and to get the build changes out of the patch. It also no longer relies on external caching (we'll want to do this within CI instead).
80 lines
1.9 KiB
Bash
Executable File
80 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
function docker-build() {
|
|
local target="${TARGET:-}"
|
|
local image="codercom/nbin-${target}"
|
|
local token="${GITHUB_TOKEN:-}"
|
|
local minify="${MINIFY:-}"
|
|
if [[ "${target}" == "linux" ]] ; then
|
|
image="codercom/nbin-centos"
|
|
fi
|
|
|
|
local containerId
|
|
# Use a mount so we can cache the results.
|
|
containerId=$(docker create --network=host --rm -it -v "$(pwd)":/src "${image}")
|
|
docker start "${containerId}"
|
|
|
|
# TODO: Might be better to move these dependencies to the images or create new
|
|
# ones on top of these.
|
|
if [[ "${image}" == "codercom/nbin-alpine" ]] ; then
|
|
docker exec "${containerId}" apk add libxkbfile-dev libsecret-dev
|
|
else
|
|
docker exec "${containerId}" yum install -y libxkbfile-devel libsecret-devel git
|
|
fi
|
|
|
|
function docker-exec() {
|
|
local command="${1}" ; shift
|
|
local args="'${vscodeVersion}' '${codeServerVersion}'"
|
|
docker exec "${containerId}" \
|
|
bash -c "cd /src && CI=true GITHUB_TOKEN=${token} MINIFY=${minify} yarn ${command} ${args}"
|
|
}
|
|
|
|
docker-exec build
|
|
if [[ -n "${package}" ]] ; then
|
|
docker-exec binary
|
|
docker-exec package
|
|
fi
|
|
|
|
docker kill "${containerId}"
|
|
}
|
|
|
|
function local-build() {
|
|
function local-exec() {
|
|
local command="${1}" ; shift
|
|
CI=true yarn "${command}" "${vscodeVersion}" "${codeServerVersion}"
|
|
}
|
|
|
|
local-exec build
|
|
if [[ -n "${package}" ]] ; then
|
|
local-exec binary
|
|
local-exec package
|
|
fi
|
|
}
|
|
|
|
# Build code-server in the CI.
|
|
function main() {
|
|
cd "$(dirname "${0}")/.."
|
|
|
|
local codeServerVersion="${VERSION:-}"
|
|
local vscodeVersion="${VSCODE_VERSION:-}"
|
|
local ostype="${OSTYPE:-}"
|
|
local package="${PACKAGE:-}"
|
|
|
|
if [[ -z "${codeServerVersion}" ]] ; then
|
|
>&2 echo "Must set VERSION environment variable"; exit 1
|
|
fi
|
|
|
|
if [[ -z "${vscodeVersion}" ]] ; then
|
|
>&2 echo "Must set VSCODE_VERSION environment variable"; exit 1
|
|
fi
|
|
|
|
if [[ "${ostype}" == "darwin"* ]]; then
|
|
local-build
|
|
else
|
|
docker-build
|
|
fi
|
|
}
|
|
|
|
main "$@"
|