引言
- 首先说呢,我也不想重复造轮子,
- 但是无奈,网上博客看了一大圈,却始终没有找到自己需要的东西
需求描述
- 最近在研究PaddleOCR项目,这个项目很优秀,很值得学习,
- 但是有个问题,PaddleOCR仓库太大,国内网clone下来,基本搞不定。
- 主要是里面放置的一些测试图像和字体文件,导致这个仓库异常大。
- 如果我只想用这个仓库下的训练代码,那么岂不是让网速把自己愁死。
解决方法
采用Github Actions功能
- 新建一个新的仓库,用来放置去除大文件后的PaddleOCR代码
- 写好自动抓取PaddleOCR指定分支代码的脚本,因为Github Actions所用的服务器是在国外,因此网速较快
- 将其暂时训练用不到的代码删除
- 将剩下的代码推到指定仓库下
- 做成定成任务,每天7点定时抓取
具体代码
- 新建仓库OnlyPaddleOCR
- 部署公钥和密钥
来源:使用 GitHub Actions 实现博客自动化部署
- 在自己电脑上执行以下命令,会产生两个文件私钥:
gh-pages
和公钥:gh-pages.pub
ssh-keygen -t rsa -b 4096 -C "xxxx@163.com" -f gh-pages -N ""
- 然后打开
blog-pages
仓库页面,找到顶部导航中的Settings
,点击后选择Deploy keys
,点击Add deploy key
贴入公钥文件的内容。- 还需要在
blog
这个私有仓库的Settings - Secrets - New secret
界面添加私钥。其中Name
一栏我叫DEPLOY_KEYS_PADDLE
,你也可以改别的,但是要同样替换掉下面 GitHub Actions 配置里的名字。
- 开启一个Github Actions,具体代码为
# This is a basic workflow to help you get started with Actions name: CI on: push: branches: [ main ] schedule: - cron: '0 0 * * *' # 每天上午9点,自动开始执行 jobs: build: runs-on: ubuntu-latest steps: - name: Set SSH Environment env: DEPLOY_KEYS_PADDLE: ${{ secrets.DEPLOY_KEYS_PADDLE }} run: | mkdir -p ~/.ssh/ echo "$DEPLOY_KEYS_PADDLE" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa chmod 700 ~/.ssh && chmod 600 ~/.ssh/* - name: Clone and Clean PaddleOCR run: | git clone https://github.com/PaddlePaddle/PaddleOCR.git release/2.1 cd release/2.1 rm *.py rm LICENSE rm MAN* rm -r deploy rm -r PPOCRLabel rm -r StyleText rm .clang* rm .pre* rm .style* rm -r doc/datasets rm -r doc/demo rm -r doc/doc_en rm -r doc/fonts rm -r doc/imgs rm -r doc/imgs_en rm -r doc/imgs_words rm -r doc/imgs_words_en rm -r doc/tricks rm doc/*.png rm doc/*.PNG rm doc/*.pdf rm README.md mv README_ch.md README.md git config --global user.name "SWHL" git config --global user.email "liekkaskono@163.com" git remote remove origin git remote add origin git@github.com:SWHL/OnlyPaddleOCR.git git add . git commit -m 'update' git push -f origin release/2.1 # 强制推送
总结
- Github Actions的确比较良心,相当于一个配置不错的服务器
- 可以用它来做很多事情,目前还在探索中