-
Notifications
You must be signed in to change notification settings - Fork 4
172 lines (144 loc) · 7.68 KB
/
pages.yml
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
171
172
# # 参考 https://zhangshier.vip/posts/8779/#4-3-方案三
# name: Deploy # 部署
# on: # 触发条件
# push:
# branches:
# - source # 推送到 source 分支(这里的分支名很重要,不要弄错了
# workflow_dispatch: # 手动触发
# jobs:
# build:
# runs-on: ubuntu-latest
# steps:
# - name: 1. 检出仓库 # Checkout
# uses: actions/checkout@v3
# with:
# ref: source
# - name: 2. 安装 Node.js # Setup Node
# uses: actions/setup-node@v3
# with:
# node-version: "16.x"
# - name: 3. 安装 Hexo # Install Hexo
# run: |
# npm install hexo-cli -g
# - name: 4. 缓存 Node 插件 # Cache Modules
# uses: actions/cache@v1
# id: cache-modules
# with:
# path: node_modules
# key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}
# # - name: 安装主题
# # run: |
# # git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
# # npm install hexo-renderer-pug hexo-renderer-stylus --save
# - name: 5. 安装依赖 # Install Dependencies 如果没有缓存或 插件有更新,则安装插件
# if: steps.cache-modules.outputs.cache-hit != 'true'
# run: | # **如果仓库里没有 package-lock.json,上传一下,npm ci 必须要有 package-lock.json**
# npm ci
# - name: 6. 生成静态文件 # Generate,其中hexo algolia为algolia搜索,hexo gulp为全站压缩,如果没安装则按需删除
# run: |
# tar -zxvf my_node_modules.tar.gz
# hexo clean
# hexo generate
# - name: 7. 部署到 github page # Deploy:github.io仓库中保存每次提交日志, 在每个工作流程运行开始时,GitHub 会自动创建唯一的 GITHUB_TOKEN 机密以在工作流程中使用。 可以使用 GITHUB_TOKEN 在工作流程运行中进行身份验证。可以使用标准语法引用密钥以使用 GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}。 GITHUB_TOKEN 的使用示例包括将令牌作为某个操作的输入来传递,或使用它来发出经验证的 GitHub API 请求。
# uses: JamesIves/github-pages-deploy-action@v4
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# repository-name: no5ix/no5ix.github.io
# branch: master
# folder: public
# commit-message: "${{ github.event.head_commit.message }} Updated By Github Actions"
# # - name: 7. 部署到 github page # Deploy:github.io仓库中日志只保留最新
# # run: |
# # cd ./public
# # git init
# # git config user.name "no5ix"
# # git config user.email "no5ix@foxmail.com"
# # git add .
# # git commit -m "${{ github.event.head_commit.message }} $(date +"%Z %Y-%m-%d %A %H:%M:%S") Updated By Github Actions"
# # git push --force --quiet "https://${{ secrets.GITHUBUSERNAME }}:${{ secrets.GITHUBTOKEN }}@github.com/${{ secrets.GITHUBUSERNAME }}/${{ secrets.GITHUBUSERNAME }}.github.io.git" master:main
# # git push --force --quiet "https://github.com/no5ix/no5ix.github.io.git" master:main
# # - name: 8. 推送到服务器私有仓库
# # uses: easingthemes/ssh-deploy@main
# # env:
# # SSH_PRIVATE_KEY: ${{ secrets.SERVER_PRIVATE_KEY }} # 服务器生成的私钥,例如 -----BEGIN RSA PRIVATE KEY-----xxxx-----END RSA PRIVATE KEY-----
# # ARGS: "-avz --delete" # rsync参数
# # SOURCE: "public/"
# # REMOTE_HOST: ${{ secrets.SERVER_HOST }} # 服务器ip地址,例如 1.2.3.4
# # REMOTE_USER: ${{ secrets.SERVER_USER }} # 登录用户,例如 ubuntu 注意应拥有该文件夹的权限,可以在root下为用户赋权 chown -R ubuntu:755 /www/wwwroot/hexo
# # TARGET: ${{ secrets.SERVER_PATH }} # 服务器目录,例如 /www/wwwroot/hexo
# # EXCLUDE: ".git/,.user.ini" # 排除源路径中.git/ 目标路径中.user.ini 这俩不做同步操作
# # - name: 9. 刷新CDN
# # run: |
# # pip install --upgrade pip
# # pip install tencentcloud-sdk-python
# # pip install tencentcloud-sdk-python-cdn
# # python3 cdn.py
# # - name: 10. 备份Gitee # Sync to Gitee
# # uses: wearerequired/git-mirror-action@master
# # env:
# # # 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY
# # SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }}
# # with:
# # # 注意替换为你的 GitHub 源仓库地址
# # source-repo: git@github.com:GC-ZF/Blog-Backups.git
# # # 注意替换为你的 Gitee 目标仓库地址
# # destination-repo: git@gitee.com:gc-zhang/blog-backups.git
##########################################################
# 参考了 https://hexo.io/zh-cn/docs/github-pages
name: Pages
on:
push:
branches:
- source # default branch
jobs:
pages:
runs-on: ubuntu-latest
steps:
- name: 1. 检出仓库 # Checkout
uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
# If your repository depends on submodule, please see: https://github.com/actions/checkout
submodules: recursive
- name: 2. 安装 Node.js # Setup Node, 这个node版本很关键, 不要乱改
uses: actions/setup-node@v3
with:
node-version: "10.13.0"
- name: 3. 缓存 Node 插件
uses: actions/cache@v2
with:
path: node_modules
key: ${{ runner.OS }}-npm-cache
restore-keys: |
${{ runner.OS }}-npm-cache
- name: 4. 安装hexo和依赖
run: |
npm install -g hexo-cli
npm install --force
- name: 5. 生成静态文件
run: |
tar -zxvf my_node_modules.tar.gz
hexo clean
hexo generate
# - name: 7. 部署到 github page # Deploy:github.io仓库中日志只保留最新
# run: |
# cd ./public
# git init
# git config user.name "no5ix"
# git config user.email "no5ix@foxmail.com"
# git add .
# git commit -m "${{ github.event.head_commit.message }} $(date +"%Z %Y-%m-%d %A %H:%M:%S") Updated By Github Actions"
# git push --force --quiet "https://${{ secrets.GITHUB_TOKEN }}@github.com/no5ix/no5ix.github.io.git" master:master
# - name: 7. 部署到 github page # Deploy:github.io仓库中日志只保留最新
# run: |
# git config --global user.name "no5ix"
# git config --global user.email "no5ix@foxmail.com"
# sed -i "s/gh_token/${{ secrets.GITHUB_TOKEN }}/g" ./_config.yml
# hexo deploy
# - name: Build # 运行package.json里的script里的build命令
# run: npm run build
- name: 6. 部署到 github page # Deploy:github.io仓库中保存每次提交日志, 在每个工作流程运行开始时,GitHub 会自动创建唯一的 GITHUB_TOKEN 机密以在工作流程中使用。 可以使用 GITHUB_TOKEN 在工作流程运行中进行身份验证。可以使用标准语法引用密钥以使用 GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}。 GITHUB_TOKEN 的使用示例包括将令牌作为某个操作的输入来传递,或使用它来发出经验证的 GitHub API 请求。actions-gh-pages会把部署作业完成后,产生的页面会放在储存库中的 gh-pages 分支。在储存库中前往 Settings > Pages > Source,并将 branch 改为 gh-pages。
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public