以 hexo 为例学习 github 的自动构建功能 actions
    
  
      
      
     
    
      
        简介
GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 你可以创建工作流,以便在推送更改到存储库时运行测试,或将合并的拉取请求部署到生产环境。更多查看官网文档
下面我们将以 hexo 博客的构建示例来说明。
代码集成
首先在项目的根目录下新建目录:.github/workflows
然后在这个新目录中,新建我们的构建配置文件,例如:webpack.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
   | name: NodeJS with Hexo blog
  on:     push:         branches: ["master"]     pull_request:         branches: ["master"]
  jobs:     build:         runs-on: ubuntu-latest
          strategy:             matrix:                 node-version: [16.20.2]
          steps:             - uses: actions/checkout@v3
              - name: Use Node.js ${{ matrix.node-version }}               uses: actions/setup-node@v3               with:                   node-version: ${{ matrix.node-version }}
              - name: Hexo Setup               run: |                   npm i -g hexo-cli
              - name: Build               run: |                   npm install                   npm run build
              - name: Upload ftp               uses: sebastianpopp/ftp-action@releases/v2               with:                   host: ${{ secrets.FTP_SERVER }}                   user: ${{ secrets.FTP_USERNAME }}                   password: ${{ secrets.FTP_PASSWORD }}                   localDir: "public"
   | 
 
配置解读
可以看到上面定义了一个任务在推送后会被执行。
使用的 nodejs 的版本为:16.20.2。
然后后面就是编译的过程,最后使用 sebastianpopp/ftp-action@releases/v2 库,来上传到我们的 web 所在的 FTP 服务器上。
更多的工作流模板,可以查看
github 配置
进入 github 的项目主页,找到 Actions 入口,当推送后,在这里就可以看到具体的任务情况。

在前面我们的 yml 配置文件中,有一个 FTP 上传的信息,这块是在 github 另外的地方配置的,当前项目>Settings->Secrets and variables->Actions

这样,我们就能在每次推送完新提交后,启动自动构建流程,并将构建成功后的内容自动上传到服务器进行部署。
      
     
    
      
  
  
    
      
      
        
        致力于网站建设与Web开发。喜欢新事物,关注前后端动态,对新的技术有追求, 做一个优秀的web全栈工程师。