-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeploy.sh
170 lines (133 loc) · 5.6 KB
/
deploy.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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
set -e
# https://en.wikipedia.org/wiki/ANSI_escape_code
lgreen='\033[1;32m'
yellow='\033[1;33m'
norm='\033[0m'
bold='\033[1m'
unameOut="$(uname -s)"
case "${unameOut}" in
Linux*) machine=Linux;;
Darwin*) machine=Mac;;
CYGWIN*) machine=Cygwin;;
MINGW*) machine=MinGw;;
*) machine="UNKNOWN:${unameOut}"
esac
if [ ${machine} = "Mac" ]
then
osStatus=""
elif [ ${machine} = "MinGw" ]
then
osStatus="-e"
else
osStatus=""
fi
echo
echo ${osStatus} "${lgreen}=============================================================="
echo ${osStatus} " 您的執行環境是 ${machine} "
echo ${osStatus} "==============================================================${norm}"
echo
echo ${osStatus} "${lgreen}=============================================================="
echo ${osStatus} " 一鍵部署 5 秒後開始運作 "
echo ${osStatus} " *如要停止動作請按下 CRTL + C or Control + C"
echo ${osStatus} "==============================================================${norm}"
# sleep 5s
echo
echo ${osStatus} "${yellow}=============================================================="
echo ${osStatus} " 準備取得 Git 遠端 Url..."
echo ${osStatus} "==============================================================${norm}"
# sleep 1s
originUrl=$(git config --get remote.origin.url)
echo
echo ${osStatus} "${lgreen}=============================================================="
echo ${osStatus} " 目前遠端分支: ${originUrl} "
echo ${osStatus} "==============================================================${norm}"
# sleep 1s
split=${originUrl:0:5}
status='';
if [ $split = 'https' ]
then
status='HTTPS'
else
status='SSH'
fi
echo
echo ${osStatus} "${lgreen}=============================================================="
echo ${osStatus} " 傳輸方式將採用 $status "
echo ${osStatus} " 目前遠端分支 URL:$originUrl "
echo ${osStatus} "==============================================================${norm}"
# sleep 5s
echo
echo ${osStatus} "${yellow}=============================================================="
echo ${osStatus} " 判斷是否已存在 vue.config.js"
echo ${osStatus} "==============================================================${norm}"
work_path="$(dirname $0)/vue.config.js";
if [ ! -e "$work_path" ]
then
echo
echo ${osStatus} "${yellow}=============================================================="
echo ${osStatus} " vue.config.js 不存在 "
echo ${osStatus} " 將於五秒後建立 vue.config.js "
echo ${osStatus} " *如要停止動作請按下 CRTL + C or Control + C"
echo ${osStatus} "==============================================================${norm}"
# sleep 5s
touch $work_path
echo
echo ${osStatus} "${lgreen}=============================================================="
echo ${osStatus} " 五秒後開始寫入 Vue Cli 編譯後的路徑 "
echo ${osStatus} " publicPath 路徑是 「./」 "
echo ${osStatus} " 詳細可見該檔案下註解。 "
echo ${osStatus} " *如要停止動作請按下 CRTL + C or Control + C"
echo ${osStatus} "==============================================================${norm}"
# sleep 5s
echo "// 該檔案生成的方式可以在 Vue Ui 中的「設定」->「Vue Cli」->「公開路徑」找到。
module.exports = {
// 預設狀況下,部署到 GitHub Pages 可能會無法顯示畫面
// 因此需要多設置該屬性
// 官方文件:https://cli.vuejs.org/zh/config/#publicpath
publicPath: './',
};">$work_path
else
echo
echo ${osStatus} "${lgreen}=============================================================="
echo ${osStatus} " 目前已存在 vue.config.js"
echo ${osStatus} " 準備開始進入編譯 Vue Cli 階段"
echo ${osStatus} "==============================================================${norm}"
fi
echo
echo ${osStatus} "${yellow}=============================================================="
echo ${osStatus} " 5 秒後開始編譯 Vue Cli "
echo ${osStatus} " *如要停止動作請按下 CRTL + C or Control + C"
echo ${osStatus} "==============================================================${norm}"
# sleep 5s
npm run build
echo
echo ${osStatus} "${lgreen}=============================================================="
echo ${osStatus} " 編譯完成 "
echo ${osStatus} "==============================================================${norm}"
echo
echo ${osStatus} "${yellow}=============================================================="
echo ${osStatus} " 移動到編譯完成的資料夾 "
echo ${osStatus} "==============================================================${norm}"
cd dist
echo
echo ${osStatus} "${yellow}=============================================================="
echo ${osStatus} " 初始化 Git 與加入 Commit "
echo ${osStatus} "==============================================================${norm}"
git init
git add .
git commit -m "update `date +'%Y-%m-%d %H:%M:%S'`";
echo
echo ${osStatus} "${yellow}=============================================================="
echo ${osStatus} " 5 秒後部署檔案到遠端分支 "
echo ${osStatus} " *如要停止動作請按下 CRTL + C or Control + C"
echo ${osStatus} "==============================================================${norm}"
# sleep 5s
git push -f $originUrl master:gh-pages
echo
echo ${osStatus} "${yellow}=============================================================="
echo ${osStatus} " 部署完成 "
echo ${osStatus} "==============================================================${norm}"
echo
echo ${osStatus} "${lgreen}=============================================================="
echo ${osStatus} " 一鍵部署指令結束 "
echo ${osStatus} "==============================================================${norm}"