sync-demo-next.yml 5.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. # 当分支 next 分支有 push 事件,并且此次 push 包含了 demo 目录下的文件时触发,使用 GitHub Actions 执行
  2. name: SYNC NEXT DEMO
  3. on:
  4. push:
  5. branches:
  6. - next
  7. paths:
  8. - 'demo/**'
  9. jobs:
  10. sync:
  11. runs-on: ubuntu-latest
  12. steps:
  13. - name: Checkout
  14. uses: actions/checkout@v4
  15. # clone 仓库 github.com/any-tdf/stdf
  16. - name: Clone stdf
  17. uses: actions/checkout@v4
  18. with:
  19. repository: any-tdf/stdf
  20. token: ${{ secrets.STDF_GITHUB_TOKEN }}
  21. path: stdf
  22. # 切换到 next 分支
  23. - name: Checkout next
  24. run: |
  25. git checkout next
  26. # 读取 packages/stdf/package.json 中的 version 字段,作为 stdf 的最新版本
  27. # - name: Get version
  28. # id: version
  29. # run: |
  30. # echo version=$(cat packages/stdf/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]') >> $GITHUB_OUTPUT
  31. # 读取 packages/rollup-plugin-stdf-icon/package.json 中的 version 字段,作为 rollup-plugin-stdf-icon 的最新版本
  32. - name: Get rollup-plugin-stdf-icon version
  33. id: rollup-plugin-stdf-icon-version
  34. run: |
  35. 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
  36. # 将 demo/package.json 内的 "svelte" 前面增加一行 "stdf": "^${{ steps.version.outputs.version }}",
  37. # 将 stdf/LICENSE 复制到 stdf/demo 目录下
  38. # cd 到 stdf/demo 文件内,初始化本地仓库
  39. # 将 demo/package.json 内的 file:../packages/rollup-plugin-stdf-icon 替换为 ^${{ steps.rollup-plugin-stdf-icon-version.outputs.rollup-plugin-stdf-icon-version }}
  40. # 将 demo/src/routes/+layout.svelte 内的 "'../../../packages/stdf/components'" 替换为 "'stdf'"
  41. # 将 demo/src/routes/+layout.svelte 内的 "'../../../packages/stdf/lang/zh_CN'" 替换为 "'stdf/lang/zh_CN'"
  42. # 将 demo/src/routes/+layout.svelte 内的 "'../../../packages/stdf/lang/en_US'" 替换为 "'stdf/lang/en_US'"
  43. # 将 demo/src/routes/+page.svelte 内的 "'../../../packages/stdf/components'" 替换为 "'stdf/lang/en_US'"
  44. # 将 demo/src/routes/en_US/**/*.svelte 内的 "'../../../../../packages/stdf/components'" 替换为 "'stdf'"
  45. # 将 demo/src/routes/zh_CN/**/*.svelte 内的 "'../../../../../packages/stdf/components'" 替换为 "'stdf'"
  46. # 将 demo/src/routes/en_US/**/*.svelte 内的 "'../../../../../packages/stdf/index.d'" 替换为 "'stdf'"
  47. # 将 demo/src/routes/zh_CN/**/*.svelte 内的 "'../../../../../packages/stdf/index.d'" 替换为 "'stdf'"
  48. # 将 demo/src/routes/components/ThemeSwitch.svelte 内的 "'../../../../packages/stdf/theme'" 替换为 "'stdf/theme'"
  49. # 讲 demo/src/data/themes/index.js 内的 "'../../../../packages/stdf/theme'" 替换为 "'stdf/theme'"
  50. # 将 demo/tailwind.config.js 内的 "'../packages/stdf/**/*.svelte'" 替换为 "./node_modules/stdf/**/*.svelte'",注意其中特殊符号的转义
  51. # 将 demo 目录下的所有文件提交到本地仓库,提交信息为 Github Actions auto commit: update demo from stdf.
  52. # sed -i 's/"svelte"/"stdf": "^${{ steps.version.outputs.version }}",\n"svelte"/' package.json
  53. - name: Init stdf demo
  54. run: |
  55. cp stdf/LICENSE stdf/demo/LICENSE
  56. cd stdf/demo
  57. git init
  58. git config --global user.name 'GitHub Actions'
  59. git config --global user.email 'GitHub Actions'
  60. sed -i 's/"svelte"/\t\t"svelte"/' package.json
  61. sed -i 's#file:../packages/rollup-plugin-stdf-icon#^${{ steps.rollup-plugin-stdf-icon-version.outputs.rollup-plugin-stdf-icon-version }}#' package.json
  62. sed -i 's#../../../packages/stdf/components#stdf#' src/routes/+layout.svelte
  63. sed -i 's#../../../packages/stdf/lang/zh_CN#stdf/lang/zh_CN#' src/routes/+layout.svelte
  64. sed -i 's#../../../packages/stdf/lang/en_US#stdf/lang/en_US#' src/routes/+layout.svelte
  65. sed -i 's#../../../packages/stdf/components#stdf#' src/routes/+page.svelte
  66. sed -i 's#../../../../../packages/stdf/components#stdf#' src/routes/en_US/**/*.svelte
  67. sed -i 's#../../../../../packages/stdf/components#stdf#' src/routes/zh_CN/**/*.svelte
  68. sed -i 's#../../../../../packages/stdf/index.d#stdf#' src/routes/en_US/**/*.svelte
  69. sed -i 's#../../../../../packages/stdf/index.d#stdf#' src/routes/zh_CN/**/*.svelte
  70. sed -i 's#../../../../packages/stdf/theme#stdf/theme#' src/routes/components/ThemeSwitch.svelte
  71. sed -i 's#../../../../packages/stdf/theme#stdf/theme#' src/data/themes/index.js
  72. sed -i 's|'\''../packages/stdf/\*\*/\*.svelte'\''|'\''.\/node_modules\/stdf\/\*\*\/\*.svelte'\''|g' tailwind.config.js
  73. git add .
  74. git commit -m "Github Actions auto commit: update demo from stdf."
  75. # 将修改内容推送到 git@github.com:any-tdf/next-demo-stdf.git 的 main 分支
  76. - name: Push to next-demo-stdf
  77. uses: ad-m/github-push-action@master
  78. with:
  79. github_token: ${{ secrets.STDF_GITHUB_TOKEN }}
  80. branch: main
  81. force: true
  82. directory: stdf/demo
  83. repository: any-tdf/next-demo-stdf