forked from lucaperret/drone-netlify
-
Notifications
You must be signed in to change notification settings - Fork 2
/
script.sh
executable file
·133 lines (111 loc) · 2.95 KB
/
script.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/bin/sh
set -e
#CLI Commands: https://cli.netlify.com/commands/deploy
NETLIFY_SITE=""
NETLIFY_DEPLOY_OPTIONS=""
#Prod Flag
if [ -n "$PLUGIN_PROD" ]
then
NETLIFY_DEPLOY_OPTIONS="--prod ${PLUGIN_PROD}"
fi
#Context Flag
if [ -n "$PLUGIN_CONTEXT" ]
then
NETLIFY_DEPLOY_OPTIONS="--context ${PLUGIN_CONTEXT}"
fi
#Prod if Locked Flag
if [ -n "$PLUGIN_PRODLOCKED" ]
then
NETLIFY_DEPLOY_OPTIONS="--prod-if-unlocked ${PLUGIN_PRODLOCKED}"
fi
#Debug Flag
if [ -n "$PLUGIN_DEBUG" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --debug ${PLUGIN_DEBUG}"
fi
#Timeout Flag
if [ -n "$PLUGIN_TIMEOUT" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --timeout ${PLUGIN_TIMEOUT}"
fi
#Netlify CI Build Flag
if [ -n "$PLUGIN_BUILD" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --build ${PLUGIN_BUILD}"
fi
#Message Flag
if [ -n "$PLUGIN_MESSAGE" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --message ${PLUGIN_MESSAGE}"
fi
#Timeout Flag
if [ -n "$PLUGIN_TIMEOUT" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --message ${PLUGIN_TIMEOUT}"
fi
#JSON Flag
if [ -n "$PLUGIN_JSON" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --message ${PLUGIN_JSON}"
fi
#Upload Location Dir Flag
if [ -n "$PLUGIN_DIR" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --dir ${PLUGIN_DIR}"
else
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --dir ./"
fi
#Functions Location Dir Flag
if [ -n "$PLUGIN_FUNCTIONS" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --functions ${PLUGIN_FUNCTIONS}"
fi
#Skip Functions Cache Flag
if [ -n "$PLUGIN_SKIPFUNCTIONSCACHE" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --skip-functions-cache ${PLUGIN_SKIPFUNCTIONSCACHE}"
fi
#Filter for MONOREPO Flag
if [ -n "$PLUGIN_FILTER" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --filter ${PLUGIN_FILTER}"
fi
#Alias Flag
if [ -n "$PLUGIN_ALIAS" ]
then
NETLIFY_DEPLOY_OPTIONS="${NETLIFY_DEPLOY_OPTIONS} --alias ${PLUGIN_ALIAS}"
fi
#Netlify Token
if [ -z "$PLUGIN_TOKEN" ]
then
if [ -z "$NETLIFY_TOKEN" ]
then
echo "> Error! token or netlify_token secret is required"
exit 1;
else
PLUGIN_TOKEN="$NETLIFY_TOKEN"
fi
fi
#Output Info
echo "> Netlify CLI and NodeJS Version: " && netlify -v
#Deploy Step
if [ -n "$PLUGIN_SITE_ID" ] && [ -n "$PLUGIN_TOKEN" ]
then
NETLIFY_SITE="--auth $PLUGIN_TOKEN --site $PLUGIN_SITE_ID"
echo "> Executing: netlify deploy $NETLIFY_SITE $NETLIFY_DEPLOY_OPTIONS"
echo "> Deploying on Netlify…" &&
netlify deploy $NETLIFY_SITE $NETLIFY_DEPLOY_OPTIONS | tee out.txt
draft_url=$(cat out.txt | grep -o 'Website draft URL: .*' | awk '{print $4}')
echo "DRAFT_URL=$draft_url" >> $DRONE_OUTPUT
else
echo "> Error! site_id and token are required"
exit 1
fi
rc=$?;
if [[ $rc != 0 ]];
then
echo "> non-zero exit code $rc" &&
exit $rc
else
echo $'\n'"> Successfully Deployed!"$'\n'
fi