ci.yml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. name: CI
  2. on:
  3. pull_request:
  4. paths-ignore:
  5. - 'build/**'
  6. - 'docs/**'
  7. - 'files/**'
  8. permissions:
  9. contents: read
  10. jobs:
  11. lint:
  12. name: Lint testing
  13. runs-on: ubuntu-latest
  14. steps:
  15. - name: Git checkout
  16. uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  17. - name: Install Node
  18. uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
  19. with:
  20. node-version: 18
  21. cache: 'npm'
  22. - name: Install dependencies
  23. run: npm ci
  24. - name: === Lint testing ===
  25. run: npm run lint
  26. unit:
  27. name: Unit testing
  28. runs-on: ubuntu-latest
  29. steps:
  30. - name: Git checkout
  31. uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  32. - name: Install Node
  33. uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
  34. with:
  35. node-version: 18
  36. cache: 'npm'
  37. - name: Install dependencies
  38. run: npm ci
  39. - name: === Unit testing ===
  40. run: npm run test-unit
  41. circular:
  42. name: Circular dependencies testing
  43. runs-on: ubuntu-latest
  44. steps:
  45. - name: Git checkout
  46. uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  47. - name: Install Node
  48. uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
  49. with:
  50. node-version: 18
  51. cache: 'npm'
  52. - name: Install dependencies
  53. run: npm ci
  54. - name: === Circular dependencies testing ===
  55. run: npm run test-circular-deps
  56. e2e:
  57. name: E2E testing
  58. runs-on: ${{ matrix.os }}
  59. timeout-minutes: 20
  60. strategy:
  61. fail-fast: false
  62. matrix:
  63. os: [ windows-latest ]
  64. CI: [ 0, 1, 2, 3 ]
  65. env:
  66. CI: ${{ matrix.CI }}
  67. steps:
  68. - name: Git checkout
  69. uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  70. - name: Install Node
  71. uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
  72. with:
  73. node-version: 18
  74. cache: 'npm'
  75. - name: Install dependencies
  76. run: npm ci
  77. - name: Build
  78. run: npm run build-module
  79. - name: === E2E testing ===
  80. run: npm run test-e2e
  81. - name: Upload output screenshots
  82. uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4
  83. if: always()
  84. with:
  85. name: Output screenshots-${{ matrix.os }}-${{ matrix.CI }}
  86. path: test/e2e/output-screenshots
  87. if-no-files-found: ignore
  88. e2e-cov:
  89. name: Examples ready for release
  90. runs-on: ubuntu-latest
  91. steps:
  92. - name: Git checkout
  93. uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
  94. - name: Install Node
  95. uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4
  96. with:
  97. node-version: 18
  98. cache: 'npm'
  99. - name: Install dependencies
  100. run: npm ci
  101. - name: === Examples ready for release ===
  102. run: npm run test-e2e-cov