-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
executable file
·163 lines (129 loc) · 3.55 KB
/
deploy.sh
File metadata and controls
executable file
·163 lines (129 loc) · 3.55 KB
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
#!/bin/sh
set -e
set -x
# echo '[INFO] Preparing...'
# echo '[INFO] Print environment variables:'
# echo "SHELL=[$SHELL]"
# echo "HOME=[$HOME]"
# echo "GITHUB_WORKSPACE=[$GITHUB_WORKSPACE]"
# echo "GITHUB_RUN_ID=[$GITHUB_RUN_ID]"
# echo "GITHUB_REPOSITORY=[$GITHUB_REPOSITORY]"
# echo "GITHUB_SHA=[$GITHUB_SHA]"
# echo "USER_NAME=[$USER_NAME]"
# echo "USER_EMAIL=[$USER_EMAIL]"
# echo "GITHUB_TOKEN=[$GITHUB_TOKEN]"
# OUTPUT_DIR="${BOOK_DIR}/_book"
# export OUTPUT_DIR
# echo "OUTPUT_DIR=[$OUTPUT_DIR]"
# NAME_REPO=$(echo "$GITHUB_REPOSITORY" | cut -d "/" -f 2)
DEFAULT_BRANCH="gh-pages"
BUILD() {
DIR="$PWD/docx"
FILE="$PWD/docx/README.md"
if [ -d "$DIR" ];
then
{
echo "folder exits, create other folder"
NAME="$(date +%s | md5 | base64 | head -c 12 ; echo)"
DIR="$PWD/$NAME"
}
else
{
echo "folder didn't exist, create new folder"
mkdir $DIR
ls -la
}
fi
git clone "https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" $DIR
if [ -f "$FILE" ];
then
{
echo "File docx exist"
}
else
{
echo "File docx didn't exist, create new file"
echo "## Docx empty pls update them" > $FILE
}
fi
cd $DIR
npm i
npx honkit build
}
GENERATE_VARIABLES_FOR_DEPLOY() {
echo '[INFO] Start to deploy...'
echo '[INFO] Preparing...'
echo '[INFO] Print environment variables:'
echo "GITHUB_REPOSITORY=$GITHUB_REPOSITORY"
echo "GITHUB_WORKSPACE=$GITHUB_WORKSPACE"
echo GITHUB_REPOSITORY=$GITHUB_REPOSITORY
NAME_FOLDER=$( echo "$GITHUB_REPOSITORY" | cut -d "/" -f 2 )
echo "$NAME_FOLDER"
FOLDER_CODE=${NAME_FOLDER}_result
export FOLDER_CODE
echo $FOLDER_CODE
if [ -d "$DIR/_book" ];
then
{
echo "folder exits"
DIR="$DIR/_book"
ls -la $DIR
}
else
{
exit 1
}
fi
}
COPY_OUTPUT() {
cd $GITHUB_WORKSPACE
mkdir $FOLDER_CODE
git clone "https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" $FOLDER_CODE
cd $FOLDER_CODE
existed_in_remote=$(git ls-remote --heads origin $DEFAULT_BRANCH)
if [ -z ${existed_in_remote} ];
then
{
git checkout -b $DEFAULT_BRANCH
}
else
{
git checkout $DEFAULT_BRANCH
}
fi
echo '[INFO] Copy GitBook output pages...'
mkdir $GITHUB_WORKSPACE/dot_git_temp
cp -rf .git/* $GITHUB_WORKSPACE/dot_git_temp
rm -rf $GITHUB_WORKSPACE/$FOLDER_CODE
mkdir $GITHUB_WORKSPACE/$FOLDER_CODE
mkdir $GITHUB_WORKSPACE/$FOLDER_CODE/.git
cp -rf $GITHUB_WORKSPACE/dot_git_temp/* $GITHUB_WORKSPACE/$FOLDER_CODE/.git
cp -rf $DIR/* $GITHUB_WORKSPACE/$FOLDER_CODE/
cd $GITHUB_WORKSPACE/$FOLDER_CODE
}
PUSH_REPO() {
echo '[INFO] Add new commit for branch...'
git config user.name "$GITHUB_ACTOR"
git config user.email "$USER_EMAIL"
git add --all
git commit -m "Deploy to Github Pages (from $GITHUB_SHA)"
echo '[INFO] Push to result...'
git push origin $DEFAULT_BRANCH
echo '[INFO] Deploy completed...!'
}
MAIN(){
#Build gitbook by honkit
BUILD
# Preparing variable
GENERATE_VARIABLES_FOR_DEPLOY
# Copy honkit on repo
COPY_OUTPUT
# Push result on repo
PUSH_REPO
}
MAIN
##########################Main Process############################
if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ]; then
set -- node "$@"
fi
exec "$@"