code-server-2/ci/release.sh

77 lines
1.8 KiB
Bash
Raw Normal View History

2020-01-15 18:05:27 +00:00
#!/usr/bin/env bash
# ci.bash -- Build code-server in the CI.
2019-07-11 22:12:52 +00:00
set -euo pipefail
2019-07-10 23:10:39 +00:00
2020-02-25 22:20:47 +00:00
function package() {
local target
target=$(uname | tr '[:upper:]' '[:lower:]')
if [[ $target == "linux" ]]; then
# Alpine's ldd doesn't have a version flag but if you use an invalid flag
# (like --version) it outputs the version to stderr and exits with 1.
local ldd_output
ldd_output=$(ldd --version 2>&1 || true)
if echo "$ldd_output" | grep -iq musl; then
target="alpine"
fi
fi
2020-02-04 19:27:46 +00:00
2020-02-25 22:20:47 +00:00
local arch
2020-03-26 20:50:32 +00:00
arch=$(uname -m | sed 's/aarch/arm/')
2020-02-25 22:20:47 +00:00
echo -n "Creating release..."
2020-02-25 22:20:47 +00:00
cp "$(command -v node)" ./build
cp README.md ./build
cp LICENSE.txt ./build
cp ./lib/vscode/ThirdPartyNotices.txt ./build
cp ./ci/code-server.sh ./build/code-server
local archive_name="code-server-$VERSION-$target-$arch"
mkdir -p ./release
local ext
if [[ $target == "linux" ]]; then
ext=".tar.gz"
tar -czf "release/$archive_name$ext" --transform "s/^\.\/build/$archive_name/" ./build
else
mv ./build "./$archive_name"
ext=".zip"
2020-03-03 21:07:58 +00:00
zip -r "release/$archive_name$ext" "./$archive_name"
2020-02-25 22:20:47 +00:00
mv "./$archive_name" ./build
fi
echo "done (release/$archive_name)"
2020-04-28 18:14:38 +00:00
# release-upload is for uploading to the GCP bucket whereas release is used for GitHub.
2020-02-25 22:20:47 +00:00
mkdir -p "./release-upload/$VERSION"
2020-03-04 22:51:58 +00:00
cp "./release/$archive_name$ext" "./release-upload/$VERSION/$target-$arch$ext"
2020-02-25 22:20:47 +00:00
mkdir -p "./release-upload/latest"
2020-03-04 22:51:58 +00:00
cp "./release/$archive_name$ext" "./release-upload/latest/$target-$arch$ext"
2020-02-25 22:20:47 +00:00
}
# This script assumes that yarn has already ran.
function build() {
# Always minify and package on CI.
if [[ ${CI:-} ]]; then
2020-02-04 19:27:46 +00:00
export MINIFY="true"
fi
2019-07-03 00:10:17 +00:00
2020-02-04 19:27:46 +00:00
yarn build
2020-02-25 22:20:47 +00:00
}
function main() {
cd "$(dirname "${0}")/.."
source ./ci/lib.sh
set_version
build
2019-07-03 00:10:17 +00:00
2020-02-25 22:20:47 +00:00
if [[ ${CI:-} ]]; then
package
2020-02-04 19:27:46 +00:00
fi
2019-07-03 00:10:17 +00:00
}
main "$@"