update_page.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. ref: 'developing'
  25. path: 'builder'
  26. - name: 创建 Pagebuilder 环境
  27. run: |
  28. cd builder
  29. pip install .
  30. cd ..
  31. cd project
  32. pip install -r requirements.txt
  33. - name: 签出生成文件储存库
  34. uses: actions/checkout@v4
  35. with:
  36. ref: 'generated'
  37. path: 'generated'
  38. - name: 删除之前版本
  39. run: |
  40. cd generated
  41. git rm -r generated/* --ignore-unmatch
  42. git clean -f
  43. - name: 构建页面
  44. run: builder build --project ${GITHUB_WORKSPACE}/project/Project/Project.yml --output ${GITHUB_WORKSPACE}/generated/generated -a
  45. - name: 配置 GPG 信息
  46. uses: crazy-max/ghaction-import-gpg@v6
  47. with:
  48. gpg_private_key: ${{ secrets.BOT_GPG_PRIVATE_KEY }}
  49. git_user_signingkey: true
  50. git_commit_gpgsign: true
  51. workdir: generated
  52. - name: 提交与推送更改
  53. run: |
  54. cd generated
  55. git config --local user.email "[email protected]"
  56. git config --local user.name "Hilda Bot"
  57. git add *
  58. git diff-index --quiet HEAD || git commit -S -m "upload generated pages" && git push
  59. purge_cdn:
  60. name: Purge CDN
  61. runs-on: ubuntu-latest
  62. needs: generate
  63. steps:
  64. - name: 签出工程储存库
  65. uses: actions/checkout@v4
  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 }}