62 lines
1.7 KiB
Bash
Executable File
62 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ci.bash -- Build code-server in the CI.
|
|
|
|
set -euo pipefail
|
|
|
|
# This script assumes that yarn has already ran.
|
|
function main() {
|
|
cd "$(dirname "${0}")/.."
|
|
|
|
local code_server_version=${VERSION:-${TRAVIS_TAG:-${DRONE_TAG:-}}}
|
|
if [[ -z $code_server_version ]] ; then
|
|
code_server_version=$(grep version ./package.json | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[:space:]')
|
|
fi
|
|
export VERSION=$code_server_version
|
|
|
|
YARN_CACHE_FOLDER="$(pwd)/yarn-cache"
|
|
export YARN_CACHE_FOLDER
|
|
|
|
# Always minify and package on tags since that's when releases are pushed.
|
|
if [[ -n ${DRONE_TAG:-} || -n ${TRAVIS_TAG:-} ]] ; then
|
|
export MINIFY="true"
|
|
export PACKAGE="true"
|
|
fi
|
|
|
|
yarn build
|
|
yarn binary
|
|
if [[ -n ${PACKAGE:-} ]] ; then
|
|
yarn package
|
|
fi
|
|
|
|
cd binaries
|
|
|
|
if [[ -n ${STRIP_BIN_TARGET:-} ]] ; then
|
|
# In this case provide plainly named binaries.
|
|
for binary in code-server* ; do
|
|
echo "Moving $binary to code-server"
|
|
mv "$binary" code-server
|
|
done
|
|
elif [[ -n ${DRONE_TAG:-} || -n ${TRAVIS_TAG:-} ]] ; then
|
|
# Prepare directory for uploading binaries on release.
|
|
for binary in code-server* ; do
|
|
mkdir -p "../binary-upload"
|
|
|
|
local prefix="code-server-$code_server_version-"
|
|
local target="${binary#$prefix}"
|
|
if [[ $target == "linux-x86_64" ]] ; then
|
|
echo "Copying $binary to ../binary-upload/latest-linux"
|
|
cp "$binary" "../binary-upload/latest-linux"
|
|
fi
|
|
|
|
local gcp_dir
|
|
gcp_dir="../binary-upload/releases/$code_server_version/$target"
|
|
mkdir -p "$gcp_dir"
|
|
|
|
echo "Copying $binary to $gcp_dir/code-server"
|
|
cp "$binary" "$gcp_dir/code-server"
|
|
done
|
|
fi
|
|
}
|
|
|
|
main "$@"
|