update_page.yml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. name: Check & Update Pages
  2. on:
  3. workflow_dispatch:
  4. push:
  5. branches:
  6. - main
  7. jobs:
  8. generate:
  9. name: Generate Pages
  10. runs-on: ubuntu-latest
  11. steps:
  12. - name: 签出工程储存库
  13. uses: actions/checkout@v4
  14. with:
  15. path: 'project'
  16. - name: 配置 Python 环境
  17. uses: actions/setup-python@v4
  18. with:
  19. python-version: 3.11
  20. - name: 签出 PageBuilder 储存库
  21. uses: actions/checkout@v4
  22. with:
  23. repository: 'Light-Beacon/HomepageBuilder'
  24. path: 'builder'
  25. - name: 创建 Pagebuilder 环境
  26. run: |
  27. cd builder
  28. pip install .
  29. cd ..
  30. cd project
  31. pip install -r requirements.txt
  32. - name: 签出生成文件储存库
  33. uses: actions/checkout@v4
  34. with:
  35. ref: 'generated'
  36. path: 'generated'
  37. - name: 删除之前版本
  38. run: |
  39. cd generated
  40. git rm -r generated/* --ignore-unmatch
  41. git clean -f
  42. - name: 构建页面
  43. run: builder build --project ${GITHUB_WORKSPACE}/project/Project/Project.yml --output ${GITHUB_WORKSPACE}/generated/generated -a
  44. - name: 配置 GPG 信息
  45. uses: crazy-max/ghaction-import-gpg@v6
  46. with:
  47. gpg_private_key: ${{ secrets.BOT_GPG_PRIVATE_KEY }}
  48. git_user_signingkey: true
  49. git_commit_gpgsign: true
  50. workdir: generated
  51. - name: 提交与推送更改
  52. run: |
  53. cd generated
  54. git config --local user.email "[email protected]"
  55. git config --local user.name "Hilda Bot"
  56. git add *
  57. git diff-index --quiet HEAD || git commit -S -m "upload generated pages" && git push
  58. purge_cdn:
  59. name: Purge CDN
  60. runs-on: ubuntu-latest
  61. needs: generate
  62. steps:
  63. - name: 签出工程储存库
  64. uses: actions/checkout@v4
  65. - name: 刷新 CDN 缓存
  66. shell: bash
  67. run: bash Actions/purge_cdn_cache.sh
  68. env:
  69. secret_id: ${{ secrets.TENCENT_CLOUD_SECRET_ID }}
  70. secret_key: ${{ secrets.TENCENT_CLOUD_SECRET_KEY }}
  71. purge_urls: ${{ secrets.TENCENT_CLOUD_CDN_URLS }}