web.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. name: Build Web
  2. on:
  3. push:
  4. branches:
  5. # 本仓库默认分支是 main;原写 master 导致下面的「自动提交产物」步骤从未触发过。
  6. - main
  7. paths:
  8. - '**/modules/web/**'
  9. pull_request:
  10. paths:
  11. - '**/modules/web/**'
  12. workflow_dispatch:
  13. # git-auto-commit-action 要往 main 提交 app/src/main/assets/web/vue/**,需要写权限;
  14. # 缺这段时 GITHUB_TOKEN 默认只读,push changes 会 403(与 auto-release.yml 的写法一致)。
  15. permissions:
  16. contents: write
  17. jobs:
  18. build:
  19. runs-on: ubuntu-latest
  20. steps:
  21. - name: Checkout
  22. uses: actions/checkout@v5
  23. - name: Install Node.js
  24. uses: actions/setup-node@v4
  25. with:
  26. node-version: 22
  27. - uses: pnpm/action-setup@v4
  28. name: Install pnpm
  29. id: pnpm-install
  30. with:
  31. version: 9
  32. run_install: false
  33. - name: Get pnpm store directory
  34. id: pnpm-cache
  35. shell: bash
  36. run: |
  37. echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
  38. - uses: actions/cache@v4
  39. name: Setup pnpm cache
  40. with:
  41. path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
  42. key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/web/package.json') }}
  43. restore-keys: |
  44. ${{ runner.os }}-pnpm-store-
  45. - name: Build and move files
  46. working-directory: modules/web
  47. run: |
  48. pnpm i
  49. pnpm build
  50. version="v$(date -d "8 hour" -u +3.%y.%m%d%H)"
  51. echo "APP_VER=$version" >> $GITHUB_ENV
  52. - name: push changes
  53. if: ${{ github.event_name != 'pull_request' }}
  54. uses: stefanzweifel/git-auto-commit-action@v6.0.1
  55. with:
  56. commit_message: Bump web ${{ env.APP_VER}}
  57. file_pattern: app/src/main/assets/web/vue/