build-demo.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # 当分支 main 有 push 事件,并且此次 push 包含了 demo 目录下的文件时触发,使用 GitHub Actions 自动构建 Demo 并部署到服务器(使用 ubuntu-latest),具体步骤如下:
  2. # 1. 安装 nodejs , python3 , pip
  3. # 2. pip 依次安装 aliyun-python-sdk-cdn , aliyun-python-sdk-core , logging
  4. # 3. cd demo 安装依赖 npm install
  5. # 4. 打包 npm run build
  6. # 5. 使用 appleboy/scp-action@master 将 demo/dist 目录下所有文件上传到服务器上 demo 目录下
  7. # 6. 执行 demo/scripts/Refresh-auto.py 刷新 CDN 缓存
  8. name: BUILD DEMO
  9. on:
  10. push:
  11. branches:
  12. - main
  13. paths:
  14. - 'demo/**'
  15. jobs:
  16. build:
  17. runs-on: ubuntu-latest
  18. steps:
  19. - name: Checkout
  20. uses: actions/checkout@v4
  21. - name: Setup Node.js environment
  22. uses: actions/setup-node@v3
  23. with:
  24. node-version: 18.x
  25. - name: Setup Python environment
  26. uses: actions/setup-python@v2
  27. with:
  28. python-version: 3.x
  29. - name: Install pip
  30. run: python3 -m pip install --upgrade pip
  31. - name: Install aliyun-python-sdk-cdn
  32. run: python3 -m pip install aliyun-python-sdk-cdn
  33. - name: Install aliyun-python-sdk-core
  34. run: python3 -m pip install aliyun-python-sdk-core
  35. - name: Install logging
  36. run: python3 -m pip install logging
  37. # cd packages/rollup-plugin-stdf-icon 目录下
  38. # 安装依赖 npm install
  39. # 打包 npm run build
  40. - name: Build rollup-plugin-stdf-icon
  41. run: |
  42. cd packages/rollup-plugin-stdf-icon
  43. npm install
  44. npm run build
  45. - name: Install dependencies and build
  46. run: |
  47. cd demo
  48. npm install
  49. npm run build
  50. - name: Upload
  51. uses: appleboy/scp-action@master
  52. with:
  53. host: ${{ secrets.ALIYUN_HOST }}
  54. username: ${{ secrets.ALIYUN_USERNAME }}
  55. port: ${{ secrets.ALIYUN_PORT }}
  56. password: ${{ secrets.ALIYUN_PRIVATE_KEY }}
  57. source: demo/build/*
  58. target: /usr/share/nginx/demo_stdf/
  59. strip_components: 2
  60. - name: Refresh CDN
  61. env:
  62. ALIYUN_CDN_AK: ${{ secrets.ALIYUN_CDN_AK }}
  63. ALIYUN_CDN_SK: ${{ secrets.ALIYUN_CDN_SK }}
  64. run: python3 demo/scripts/Refresh-auto.py -r demo/scripts/cdn-list.txt -t clear -o Directory