auto-sync-demo.yml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # 当分支 main 有 push 事件,并且此次 push 包含了 demo 目录下的文件时触发,使用 GitHub Actions。
  2. name: Auto 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. # 1. clone 仓库 github.com/dufu1991/stdf
  16. - name: Clone stdf
  17. run: |
  18. git clone git@github.com:dufu1991/stdf.git
  19. # 2. cd 到 stdf 仓库的 demo 文件内,初始化本地仓库
  20. # 将 demo/src/App.svelte 文件内的 ../../components 替换为 stdf
  21. # 将 demo/src/pages 目录下的所有子孙 .svelte 文件内的 ../../../../components 替换为 stdf
  22. # 将 demo 目录下的所有文件提交到本地仓库,提交信息为 Github Actions auto commit: update demo from stdf.
  23. - name: Init stdf demo
  24. run: |
  25. cd stdf/demo
  26. git init
  27. git config --global user.name 'GitHub Actions'
  28. git config --global user.email 'GitHub Actions'
  29. sed -i 's|../../components|stdf|g' src/App.svelte
  30. sed -i 's|../../../../components|stdf|g' src/pages/**/*.svelte
  31. git add .
  32. git commit -am "Github Actions auto commit: update demo from stdf."
  33. # 3. 使用 secrets.GITHUB_TOKEN 将修改内容推送到 git@github.com:dufu1991/demo-stdf.git 的 main 分支
  34. - name: Push to demo-stdf
  35. uses: ad-m/github-push-action@master
  36. with:
  37. github_token: ${{ secrets.STDF_GITHUB_TOKEN }}
  38. branch: main
  39. force: true
  40. directory: stdf/demo
  41. repository: dufu1991/demo-stdf