build.yml 1.9 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@v3
  18. - name: Install Node.js
  19. uses: actions/setup-node@v3
  20. with:
  21. node-version: latest
  22. - name: Install Python
  23. uses: actions/setup-python@v4
  24. with:
  25. python-version: '3.10'
  26. - name: Install npm packages
  27. run: npm 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. npx electron-builder --linux appimage --x64 --publish never
  42. npx electron-builder --linux snap --x64 --publish never
  43. ;;
  44. windows*)
  45. npx electron-builder --win --x64 --arm64 --publish never
  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@v3
  60. - name: Initialize CodeQL
  61. uses: github/codeql-action/init@v2
  62. with:
  63. languages: ${{ matrix.language }}
  64. - name: Autobuild
  65. uses: github/codeql-action/autobuild@v2
  66. - name: Perform CodeQL Analysis
  67. uses: github/codeql-action/analyze@v2