generate_page.yml 2.3 KB

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