codeql.yml 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. name: "CodeQL Advanced"
  2. on:
  3. push:
  4. tags-ignore:
  5. - "v*"
  6. pull_request:
  7. schedule:
  8. - cron: "18 2 * * 2"
  9. jobs:
  10. analyze:
  11. name: Analyze (${{ matrix.language }})
  12. runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
  13. env:
  14. CODEQL_ACTION_FILE_COVERAGE_ON_PRS: true
  15. permissions:
  16. security-events: write
  17. packages: read
  18. actions: read
  19. contents: read
  20. strategy:
  21. fail-fast: false
  22. matrix:
  23. include:
  24. - language: actions
  25. build-mode: none
  26. - language: go
  27. build-mode: autobuild
  28. - language: javascript-typescript
  29. build-mode: none
  30. steps:
  31. - name: Checkout repository
  32. uses: actions/checkout@v6
  33. # The Go binary embeds web/dist/ via //go:embed all:dist (web/web.go).
  34. # web/dist/ is .gitignored, so CodeQL's autobuild for Go will fail with
  35. # "pattern all:dist: no matching files found" unless vite emits it first.
  36. - name: Setup Node.js
  37. if: matrix.language == 'go'
  38. uses: actions/setup-node@v6
  39. with:
  40. node-version: '22'
  41. cache: 'npm'
  42. cache-dependency-path: frontend/package-lock.json
  43. - name: Build frontend bundle
  44. if: matrix.language == 'go'
  45. run: |
  46. npm ci
  47. npm run build
  48. working-directory: frontend
  49. - name: Initialize CodeQL
  50. uses: github/codeql-action/init@v4
  51. with:
  52. languages: ${{ matrix.language }}
  53. build-mode: ${{ matrix.build-mode }}
  54. - name: Perform CodeQL Analysis
  55. uses: github/codeql-action/analyze@v4
  56. with:
  57. category: "/language:${{matrix.language}}"