Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/ide/jetbrains/image/hot-deploy.sh
2499 views
1
#!/bin/bash
2
# Copyright (c) 2022 Gitpod GmbH. All rights reserved.
3
# Licensed under the GNU Affero General Public License (AGPL).
4
# See License.AGPL.txt in the project root for license information.
5
6
set -Eeuo pipefail
7
8
# Login in GCloud to reuse remote caches
9
ROOT_DIR="$(dirname "$0")/../../../.."
10
11
source "$ROOT_DIR/dev/preview/workflow/lib/ensure-gcloud-auth.sh"
12
ensure_gcloud_auth
13
14
# This script builds the backend JB ide image and updates the IDE config map.
15
16
product=${1:-intellij}
17
echo "Product: $product"
18
19
qualifier=${2:-latest}
20
echo "Qualifier: $qualifier"
21
22
product_code=${3}
23
echo "Product Code: $product_code"
24
25
if [ "$qualifier" == "stable" ]; then
26
component=$product
27
else
28
component=$product-$qualifier
29
fi
30
31
version="dev-$component-image-$(date +%F_T"%H-%M-%S")"
32
echo "Image Version: $version"
33
34
bldfn="/tmp/build-$version.tar.gz"
35
36
docker ps &> /dev/null || (echo "You need a working Docker daemon. Maybe set DOCKER_HOST?"; exit 1)
37
IDE_VERSIONS_JSON=$(bash "$ROOT_DIR/components/ide/jetbrains/image/resolve-latest-ide-version.sh" "$product_code")
38
IDE_BUILD_VERSION=$(echo "$IDE_VERSIONS_JSON" | jq -r .IDE_BUILD_VERSION)
39
IDE_VERSION=$(echo "$IDE_VERSIONS_JSON" | jq -r .IDE_VERSION)
40
leeway build -Dversion="$version" -DimageRepoBase=eu.gcr.io/gitpod-dev-artifact/build -DbuildNumber="$IDE_BUILD_VERSION" -DjbBackendVersion="$IDE_VERSION" ".:$component" --save "$bldfn"
41
dev_image="$(tar xfO "$bldfn" ./imgnames.txt | head -n1)"
42
echo "Dev Image: $dev_image"
43
44
if [ "$qualifier" == "stable" ]; then
45
prop="image"
46
else
47
prop="latestImage"
48
fi
49
50
cf_patch=$(kubectl get cm ide-config -o=json | jq '.data."config.json"' |jq -r)
51
cf_patch=$(echo "$cf_patch" |jq ".ideOptions.options.$product.$prop = \"$dev_image\"")
52
cf_patch=$(echo "$cf_patch" |jq tostring)
53
cf_patch="{\"data\": {\"config.json\": $cf_patch}}"
54
55
kubectl patch cm ide-config --type=merge -p "$cf_patch"
56
57
kubectl rollout restart deployment ide-service
58
59