6
6
set -Eeuo pipefail
7
7
8
8
component=${PWD##*/ }
9
- workspaceUrl =$( echo " ${1} " | sed -e " s/\/$//" )
10
- echo " URL: $workspaceUrl "
9
+ workspaceURL =$( echo " ${1} " | sed -e " s/\/$//" )
10
+ echo " Workspace URL: $workspaceURL "
11
11
12
- workspaceDesc=$( gpctl workspaces describe " $workspaceUrl " -o=json)
12
+ workspaceHost=${workspaceURL// https: \/\/ / }
13
+ echo " Workspace Host: $workspaceHost "
13
14
14
- podName =$( echo " $workspaceDesc " | jq .runtime.pod_name -r )
15
- echo " Pod : $podName "
15
+ workspaceID =$( echo " ${workspaceHost} " | cut -d. -f1 )
16
+ echo " Workspace ID : $workspaceID "
16
17
17
- workspaceId=$( echo " $workspaceDesc " | jq .metadata.meta_id -r)
18
- echo " ID: $workspaceId "
19
-
20
- clusterHost=$( kubectl exec -it " $podName " -- printenv GITPOD_WORKSPACE_CLUSTER_HOST | sed -e " s/\s//g" )
18
+ clusterHost=${workspaceHost// $workspaceID ./ }
21
19
echo " Cluster Host: $clusterHost "
22
20
23
- # prepare ssh
24
- ownerToken=$( kubectl get pod " $podName " -o=json | jq " .metadata.annotations.\" gitpod\/ownerToken\" " -r)
21
+ devClusterHost=$( gp info --json | jq .cluster_host -r)
22
+ echo " Dev Cluster Host: $devClusterHost "
23
+
24
+ preview=true
25
+ if [[ $clusterHost = " $devClusterHost " ]]
26
+ then
27
+ preview=false
28
+ fi
29
+ echo " Preview Env: $preview "
30
+
31
+ # prepare ssh config
25
32
sshConfig=$( mktemp)
26
- echo " Host $workspaceId " > " $sshConfig "
27
- echo " Hostname \" $workspaceId .ssh.$clusterHost \" " >> " $sshConfig "
28
- echo " User \" $workspaceId #$ownerToken \" " >> " $sshConfig "
33
+ echo " Host $workspaceID " > " $sshConfig "
34
+ echo " Hostname \" $workspaceID .ssh.$clusterHost \" " >> " $sshConfig "
35
+ if [ $preview = " true" ]
36
+ then
37
+ workspaceDesc=$( gpctl workspaces describe " $workspaceURL " -o=json)
38
+
39
+ podName=$( echo " $workspaceDesc " | jq .runtime.pod_name -r)
40
+ echo " Workspace Pod: $podName "
41
+
42
+ ownerToken=$( kubectl get pod " $podName " -o=json | jq " .metadata.annotations.\" gitpod\/ownerToken\" " -r)
43
+ echo " User \" $workspaceID #$ownerToken \" " >> " $sshConfig "
44
+ else
45
+ # assume SSH keys configured via .dotfiles
46
+ echo " User \" $workspaceID \" " >> " $sshConfig "
47
+ fi
29
48
30
49
# build
31
50
go build .
@@ -34,7 +53,7 @@ echo "$component built"
34
53
# upload
35
54
uploadDest=" /.supervisor/$component "
36
55
echo " Upload Dest: $uploadDest "
37
- ssh -F " $sshConfig " " $workspaceId " " sudo chown -R gitpod:gitpod /.supervisor && rm $uploadDest 2> /dev/null"
56
+ ssh -F " $sshConfig " " $workspaceID " " sudo chown -R gitpod:gitpod /.supervisor && rm $uploadDest 2> /dev/null"
38
57
echo " Permissions granted"
39
- scp -F " $sshConfig " -r " ./$component " " $workspaceId " :" $uploadDest "
58
+ scp -F " $sshConfig " -r " ./$component " " $workspaceID " :" $uploadDest "
40
59
echo " Swap complete"
0 commit comments