ci.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. name: CI
  2. on:
  3. push:
  4. branches: [main]
  5. pull_request:
  6. branches: [main]
  7. jobs:
  8. test-node:
  9. name: Node ${{ matrix.node-version }} (${{ matrix.os }})
  10. runs-on: ${{ matrix.os }}
  11. strategy:
  12. fail-fast: false
  13. matrix:
  14. os: [ubuntu-latest, macos-latest]
  15. node-version: ["22", "23"]
  16. steps:
  17. - uses: actions/checkout@v4
  18. - uses: actions/setup-node@v4
  19. with:
  20. node-version: ${{ matrix.node-version }}
  21. - name: Install SQLite (Ubuntu)
  22. if: runner.os == 'Linux'
  23. run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
  24. - name: Install SQLite (macOS)
  25. if: runner.os == 'macOS'
  26. run: brew install sqlite
  27. - run: npm install
  28. - name: Unit tests
  29. run: npx vitest run --reporter=verbose src/*.test.ts
  30. - name: Model tests
  31. run: npx vitest run --reporter=verbose src/models/*.test.ts
  32. env:
  33. CI: true
  34. - name: Integration tests
  35. run: npx vitest run --reporter=verbose src/integration/*.test.ts
  36. env:
  37. CI: true
  38. test-bun:
  39. name: Bun (${{ matrix.os }})
  40. runs-on: ${{ matrix.os }}
  41. strategy:
  42. fail-fast: false
  43. matrix:
  44. os: [ubuntu-latest, macos-latest]
  45. steps:
  46. - uses: actions/checkout@v4
  47. - uses: oven-sh/setup-bun@v2
  48. with:
  49. bun-version: latest
  50. - name: Install SQLite (Ubuntu)
  51. if: runner.os == 'Linux'
  52. run: sudo apt-get update && sudo apt-get install -y libsqlite3-dev
  53. - name: Install SQLite (macOS)
  54. if: runner.os == 'macOS'
  55. run: brew install sqlite
  56. - run: bun install
  57. - name: Unit tests
  58. run: bun test --preload ./src/test-preload.ts src/*.test.ts
  59. env:
  60. DYLD_LIBRARY_PATH: /opt/homebrew/opt/sqlite/lib
  61. LD_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu
  62. - name: Model tests
  63. run: bun test --preload ./src/test-preload.ts src/models/*.test.ts
  64. env:
  65. CI: true
  66. DYLD_LIBRARY_PATH: /opt/homebrew/opt/sqlite/lib
  67. LD_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu
  68. - name: Integration tests
  69. run: bun test --preload ./src/test-preload.ts src/integration/*.test.ts
  70. env:
  71. CI: true
  72. DYLD_LIBRARY_PATH: /opt/homebrew/opt/sqlite/lib
  73. LD_LIBRARY_PATH: /usr/lib/x86_64-linux-gnu