sync-demo.yml 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. # 当分支 main 有 push 事件,并且此次 push 包含了 demo 目录下的文件时触发,使用 GitHub Actions 执行
  2. name: SYNC DEMO
  3. on:
  4. push:
  5. branches:
  6. - main
  7. paths:
  8. - 'demo/**'
  9. jobs:
  10. build-and-deploy:
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Checkout
  14. uses: actions/checkout@v2
  15. # clone 仓库 github.com/dufu1991/stdf
  16. - name: Clone stdf
  17. uses: actions/checkout@v3
  18. with:
  19. repository: dufu1991/stdf
  20. token: ${{ secrets.STDF_GITHUB_TOKEN }}
  21. path: stdf
  22. # 读取 packages/stdf/package.json 中的 version 字段,作为 stdf 的最新版本
  23. - name: Get version
  24. id: version
  25. run: |
  26. echo version=$(cat packages/stdf/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]') >> $GITHUB_OUTPUT
  27. # 读取 packages/rollup-plugin-stdf-icon/package.json 中的 version 字段,作为 rollup-plugin-stdf-icon 的最新版本
  28. - name: Get rollup-plugin-stdf-icon version
  29. id: rollup-plugin-stdf-icon-version
  30. run: |
  31. echo rollup-plugin-stdf-icon-version=$(cat packages/rollup-plugin-stdf-icon/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]') >> $GITHUB_OUTPUT
  32. # cd 到 stdf/demo 文件内,初始化本地仓库
  33. # 将 demo/src/App.svelte 文件内的 ../../packages/stdf/components 替换为 stdf
  34. # 将 demo/src/App.svelte 文件内的 ../../packages/stdf/lang 替换为 stdf/dist/lang
  35. # 将 demo/src/pages 目录下的所有子孙 .svelte 文件内的 ../../../../packages/stdf/components 替换为 stdf
  36. # 将 demo/package.json 内的第 9 行增加内容为 rollup-plugin-stdf-icon,版本号为 ${{ steps.rollup-plugin-stdf-icon-version.outputs.rollup-plugin-stdf-icon-version }}
  37. # 将 demo/package.json 内的第 11 行增加内容为 stdf,版本号为 ${{ steps.version.outputs.version }}
  38. # 将 demo 目录下的所有文件提交到本地仓库,提交信息为 Github Actions auto commit: update demo from stdf.
  39. - name: Init stdf demo
  40. run: |
  41. cd stdf/demo
  42. git init
  43. git config --global user.name 'GitHub Actions'
  44. git config --global user.email 'GitHub Actions'
  45. sed -i 's|../../packages/stdf/components|stdf|g' src/App.svelte
  46. sed -i 's|../../packages/stdf/lang|stdf/dist/lang|g' src/App.svelte
  47. sed -i 's|../../../../packages/stdf/components|stdf|g' src/pages/**/*.svelte
  48. sed -i '9a\ "rollup-plugin-stdf-icon": "^${{ steps.rollup-plugin-stdf-icon-version.outputs.rollup-plugin-stdf-icon-version }}",' package.json
  49. sed -i '11a\ "stdf": "^${{ steps.version.outputs.version }}",' package.json
  50. git commit -am "Github Actions auto commit: update demo from stdf."
  51. # 将修改内容推送到 git@github.com:dufu1991/demo-stdf.git 的 main 分支
  52. - name: Push to demo-stdf
  53. uses: ad-m/github-push-action@master
  54. with:
  55. github_token: ${{ secrets.STDF_GITHUB_TOKEN }}
  56. branch: main
  57. force: true
  58. directory: stdf/demo
  59. repository: dufu1991/demo-stdf