build.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. name: Build
  2. on:
  3. push:
  4. branches: [ '**' ]
  5. tags-ignore: [ '**' ]
  6. pull_request:
  7. branches: [ main ]
  8. jobs:
  9. build:
  10. name: Build
  11. runs-on: ${{ matrix.os }}
  12. strategy:
  13. matrix:
  14. os: [ macos-latest, ubuntu-latest, windows-latest ]
  15. steps:
  16. - name: Clone Git repository
  17. uses: actions/checkout@v4
  18. - name: Install Node.js
  19. uses: actions/setup-node@v4
  20. with:
  21. node-version: latest
  22. - name: Install Python
  23. uses: actions/setup-python@v5
  24. with:
  25. python-version: 3.x
  26. - name: Install Packages
  27. run: npm run install
  28. - name: Validate
  29. run: npm run validate
  30. - name: Build Python Server
  31. run: npm run build python
  32. - name: Build Electron
  33. shell: bash
  34. run: |
  35. npx electron-builder install-app-deps
  36. case "${{ matrix.os }}" in
  37. macos*)
  38. CSC_IDENTITY_AUTO_DISCOVERY=false npx electron-builder --mac --universal --publish never -c.mac.identity=null
  39. ;;
  40. ubuntu*)
  41. sudo apt-get install rpm --yes
  42. npx electron-builder --linux deb --x64 --arm64 --publish never
  43. npx electron-builder --linux appimage --x64 --publish never
  44. npx electron-builder --linux snap --x64 --publish never
  45. ;;
  46. windows*)
  47. npx electron-builder --win --x64 --arm64 --publish never
  48. ;;
  49. esac
  50. analyze:
  51. name: Analyze
  52. runs-on: ubuntu-latest
  53. permissions:
  54. security-events: write
  55. strategy:
  56. fail-fast: false
  57. matrix:
  58. language: [ 'javascript', 'python' ]
  59. steps:
  60. - name: Clone Git repository
  61. uses: actions/checkout@v4
  62. - name: Initialize CodeQL
  63. uses: github/codeql-action/init@v3
  64. with:
  65. languages: ${{ matrix.language }}
  66. - name: Autobuild
  67. uses: github/codeql-action/autobuild@v3
  68. - name: Perform CodeQL Analysis
  69. uses: github/codeql-action/analyze@v3