ci.yml 3.1 KB

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