build.yml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. npm run build electron mac
  39. ;;
  40. ubuntu*)
  41. sudo apt-get install rpm --yes
  42. npm run build electron linux
  43. ;;
  44. windows*)
  45. npm run build electron windows
  46. ;;
  47. esac
  48. analyze:
  49. name: Analyze
  50. runs-on: ubuntu-latest
  51. permissions:
  52. security-events: write
  53. strategy:
  54. fail-fast: false
  55. matrix:
  56. language: [ 'javascript', 'python' ]
  57. steps:
  58. - name: Clone Git repository
  59. uses: actions/checkout@v4
  60. - name: Initialize CodeQL
  61. uses: github/codeql-action/init@v3
  62. with:
  63. languages: ${{ matrix.language }}
  64. - name: Autobuild
  65. uses: github/codeql-action/autobuild@v3
  66. - name: Perform CodeQL Analysis
  67. uses: github/codeql-action/analyze@v3