自动执行Algolia的爬虫

img

前言

接上一篇如何手动跑algolia的爬虫来打造自己的站点搜索呢,解决了站点搜索的爬虫问题,爬虫运行成功了,搜索也可以正常使用,但我运行方式是本地手动运行跑,每次添加文章理论上都要更新索引,难不成每次手动爬一遍?

思考

浪费时间,同时还占用了本机运算资源,长久看显然不可取

如何才能解放🙌🏻呢?结合自身需求,每次新文章都会在master上发布,那最好可以在分支push的时候能够执行爬虫

Github Action

这里通过githubaction来实现这个功能,首先要在根目录写个脚本

文件路径.github/workflows/main.yml

name: Algolia DocSearch

# master分支触发
on:
    push:
        branches:
            - 'master'

jobs:
    docsearch:
        runs-on: ubuntu-latest
        name: Algolia DocSearch
        steps:
            - uses: actions/checkout@v2
            - uses: darrenjennings/algolia-docsearch-action@master
              with:
                  algolia_api_key: ${{ secrets.ALGOLIA_API_KEY }}
                  algolia_application_id: ${{ secrets.ALGOLIA_APPLICATION_ID }}
                  # needs to be inside $GITHUB_WORKSPACE from actions/checkout step
                  file: 'config/crawler.json'

定义jobs执行爬虫

这部分的action有大佬已经封装好了darrenjennings/algolia-docsearch-action@master

调用的时候需要三个参数,前两个用过不多赘述

  • algolia_api_key
  • algolia_application_id
  • file:爬虫配置文件,存放在项目根目录

参数要以变量的方式提前准备好,新建方式如下图

这样提交后github就会去读取这个目录下的脚本配置,当master分支push的时候就会触发爬虫

触发成功如下图:

总结

通过编写自动化脚本,解决手动执行效率低下的问题,转移了运行环境后,还节约了本机软硬件运行资源,可谓一举两得

用好githubaction工作流配置,让任务自动执行,真的可以起到事半功倍的效果

未来

目前blog是在本地打包再上传的,虽然写了脚本直接npm执行,但每次有大概20s的耗时,后续看放在github执行,也是一个优化的方向

Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v2.15.5