forked from rjstelling/bitrise-step-kobiton-upload
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstep.sh
50 lines (36 loc) · 1.52 KB
/
step.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
set -ex
# Install ack
curl https://beyondgrep.com/ack-2.22-single-file > /usr/local/bin/ack && chmod 0755 /usr/local/bin/ack
hash ack 2>/dev/null || { echo >&2 "ack required, but it's not installed."; exit 1; }
APPNAME=${kobiton_app_name}
APPPATH=${kobiton_app_path}
APPID=${kobiton_app_id}
KUSERNAME=${kobiton_user_id}
KAPIKEY=${kobiton_api_key}
APPSUFFIX=${kobiton_app_type}
BASICAUTH=`echo -n $KUSERNAME:$KAPIKEY | base64`
echo "Using Auth: $BASICAUTH"
JSON="{\"filename\":\"${APPNAME}.${APPSUFFIX}\",\"appId\":$APPID}"
curl --silent -X POST https://api.kobiton.com/v1/apps/uploadUrl \
-H "Authorization: Basic $BASICAUTH" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d $JSON \
-o ".tmp.response.json"
UPLOADURL=`cat ".tmp.response.json" | ack -o --match '(?<=url\":")([_\%\&=\?\.aA-zZ0-9:/-]*)'`
KAPPPATH=`cat ".tmp.response.json" | ack -o --match '(?<=appPath\":")([_\%\&=\?\.aA-zZ0-9:/-]*)'`
echo "Uploading: ${APPNAME} (${APPPATH})"
echo "URL: ${UPLOADURL}"
curl --progress-bar -T "${APPPATH}" -H "Content-Type: application/octet-stream" -H "x-amz-tagging: unsaved=true" -X PUT "${UPLOADURL}"
#--verbose
echo "Processing: ${KAPPPATH}"
JSON="{\"filename\":\"${APPNAME}.${APPSUFFIX}\",\"appPath\":\"${KAPPPATH}\"}"
curl -X POST https://api.kobiton.com/v1/apps \
-H "Authorization: Basic $BASICAUTH" \
-H 'Content-Type: application/json' \
-d $JSON
echo "...done"
envman add --key KOBITON_UPLOAD_URL --value ${UPLOADURL}
envman add --key KOBITON_APP_PATH --value ${KAPPPATH}
exit 0