github action 持续集成部署

Git

github 上的操作

1.在 github 打开你要操作的项目地址,点击右上角的Settings,在左侧选择Secrets->Actions

2.在右侧选择New repository secret

3.输入 name:"ACCESS_TOKEN",value:上面复制的私钥,点击Add secret

4.接着 重复上两步,建立HOST:你服务器的ip、你的目标TARGET:你服务器上放资源的地方以及其他的你需要隐藏起来的信息,例如USER:root,PASSWORD:123456,看个人需求 准备工作基本完成,


便携自动化部署文档

在本地项目根目录创建.github文件夹,并在其中创建workflows文件夹,并在其中创建main.yml文件,内容如下

1name: NodeJS with vuepro #随便起的名字
2
3on:
4    push: #在每次push时执行任务
5        branches: [main] #只有在main分支上才会执行
6
7jobs:
8    build:
9        runs-on: ubuntu-latest #指定构建的虚拟机版本
10        steps:
11            - name: Checkout #检出
12              uses: actions/checkout@main #检出的依赖2
13              with:
14                  persist-credentials: false #不保存证书
15            - name: Cache Node Dependencies #设置依赖缓存.
16              id: cache
17              uses: actions/cache@v1
18              with:
19                  path: node_modules
20                  key: ${{runner.os}}-npm-caches-${{ hashFiles('package-lock.json')}}
21            - name: Install Dependencies #安装依赖
22              if: steps.cache.outputs.cache-hit != 'true'
23              run: |
24                  npm install --force
25            - name: build project
26              run: |
27                  npm  run build
28            - name: deploy file to server
29              uses: easingthemes/ssh-deploy@v2.0.7 #dd
30              env:
31                  REMOTE_USER: 'root' #ssh user name
32                  REMOTE_HOST: ${{secrets.HOST}} #目标地址,在github secrets中设置
33                  ARGS: '-avz --delete' #参数
34                  SSH_PRIVATE_KEY: ${{secrets.ACCESS_TOKEN}} #github access token
35                  SOURCE: 'dist/' #源文件目录
36                  TARGET: '/data/webStatic/dist' #目标文件目录
37                  # 上面几个参数可以在github secrets中设置,然后用secrets.的模式引用

发布github pages

发布本地项目到github pages

1name: NodeJS with Webpack
2
3on:
4  push:
5    branches: [ "main" ] #在每次push时执行任务
6  pull_request:
7    branches: [ "main" ]
8
9jobs:
10  build:
11    runs-on: ubuntu-latest #指定构建的虚拟机版本
12
13    strategy:
14      matrix:
15        node-version: [18] #指定构建的虚拟机版本
16
17    steps:
18    - uses: actions/checkout@v4 #检出
19
20    - name: Cache dependencies #设置依赖缓存.
21      uses: actions/cache@v2
22      with:
23        path: ~/.npm
24        key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
25        restore-keys: |
26          ${{ runner.os }}-node-
27
28    - name: Use Node.js ${{ matrix.node-version }}
29      uses: actions/setup-node@v4
30      with:
31        node-version: ${{ matrix.node-version }}
32
33    - name: Install dependencies && Build    #安装依赖并打包
34      run: |
35        npm install --force
36        npm run build
37
38    - name: Deploy to GitHub Pages #部署
39      uses: JamesIves/github-pages-deploy-action@3.7.1
40      with:
41          ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
42          BRANCH: gh-pages
43          FOLDER: dist

发布测试

1.把 main.yml 文件上传到 github,然后打开项目的 actions 页面,查看运行状态,如果没触发,看是不是分支不对

2.如果报错的话,看一下是否有缺少依赖,还是 token 啥的配置错了,

3.然后就可以看你的网页了

---../../../src/components/Tag