build-demo.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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/Refresh-auto.py 刷新 CDN 缓存
  8. name: BUILD DEMO
  9. on:
  10. push:
  11. branches:
  12. - main
  13. paths:
  14. - 'demo/**'
  15. jobs:
  16. build-and-deploy:
  17. runs-on: ubuntu-latest
  18. steps:
  19. - name: Checkout
  20. uses: actions/checkout@v2
  21. - name: Setup Node.js environment
  22. uses: actions/setup-node@v1
  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. - name: Install dependencies and build
  38. run: |
  39. cd demo
  40. npm install
  41. npm run build
  42. - name: Upload
  43. uses: appleboy/scp-action@master
  44. with:
  45. host: ${{ secrets.ALIYUN_HOST }}
  46. username: ${{ secrets.ALIYUN_USERNAME }}
  47. port: ${{ secrets.ALIYUN_PORT }}
  48. password: ${{ secrets.ALIYUN_PRIVATE_KEY }}
  49. source: demo/dist/*
  50. target: /usr/share/nginx/demo_stdf/
  51. strip_components: 2
  52. - name: Refresh CDN
  53. env:
  54. ALIYUN_CDN_AK: ${{ secrets.ALIYUN_CDN_AK }}
  55. ALIYUN_CDN_SK: ${{ secrets.ALIYUN_CDN_SK }}
  56. run: python3 demo/Refresh-auto.py -r demo/cdn-list.txt -t clear -o Directory