使用阿里云服务器搭建 hexo 博客
GitHub Actions
GitHub Actions 是 GitHub 的持续集成服务,我们可以使用它做网站的自动部署等工作。可以点击下面的链接查看示例。
我们这里只做应用。
GitHub 变量
添加
可以到 GitHub 仓库的 settings -> Secrets -> Actions 中新增变量
具体步骤如下 codeblock:false
如何使用
在配置文件 .github/workflows/main.yml
中可以使用 ${{secrets.变量名}}
的方式使用
.github/workflows/main.yml1 2 3 4 5 6 7 8 9
| - name: copy dist file with scp uses: appleboy/scp-action@master with: host: ${{ secrets.WXW_HOST }} username: ${{ secrets.WXW_USERNAME }} password: ${{ secrets.WXW_PASSWORD }} port: 22 source: "public/" target: ${{ secrets.WXW_TARGET }}
|
这里的WXW_HOST
是服务器公网 ip,WXW_USERNAME
是服务器用户名, WXW_PASSWORD
是服务器用户密码, WXW_TARGET
是要复制文件到那个文件中。
我们会在下面的配置中使用这几个变量
最终代码
.github/workflows/main.yml1 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
| name: deplay-hexo-blog on: push: branches: [master] workflow_dispatch:
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: install nodejs uses: actions/setup-node@v3.4.1 with: node-version: "16.x" - name: install packages run: npm install - name: build run: npm run build - name: copy dist file with scp uses: appleboy/scp-action@master with: host: ${{ secrets.WXW_HOST }} username: ${{ secrets.WXW_USERNAME }} password: ${{ secrets.WXW_PASSWORD }} port: 22 source: "public/" target: ${{ secrets.WXW_TARGET }}
|
代码详解:
这段代码表示在 master 分支提交时会触发该 actions
1 2 3 4
| on: push: branches: [master] workflow_dispatch:
|
这一段为使用 ubuntu-latest 虚拟机执行,安装 nodejs -> 安装依赖 -> 项目打包 -> 将文件复制到服务器指定位置
name 为 copy dist file with scp
这一段会把生成好的 public
文件复制到服务器指定位置 ${{secrets.WXW_TARGET}}
下
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
| jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: install nodejs uses: actions/setup-node@v3.4.1 with: node-version: "16.x" - name: install packages run: npm install - name: build run: npm run build - name: copy dist file with scp uses: appleboy/scp-action@master with: host: ${{ secrets.WXW_HOST }} username: ${{ secrets.WXW_USERNAME }} password: ${{ secrets.WXW_PASSWORD }} port: 22 source: "public/" target: ${{ secrets.WXW_TARGET }}
|
服务器配置 nginx
我这里使用www.whbbit.cn
这个域名
1 2 3 4 5 6 7 8 9
| server { listen 80; server_name www.whbbit.cn; location / { root /code/public; index index.html; try_files $uri $uri/ = 404; } }
|
配置好后,运行nginx -s reload
重启一下 nginx 服务器,我们就可以使用www.whbbit.cn
来访问我们部署好的网站了。