ci.yml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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. jobs:
  14. lint:
  15. name: "Linting"
  16. runs-on: ubuntu-latest
  17. steps:
  18. - name: Git checkout
  19. uses: actions/checkout@v2
  20. - name: Install node
  21. uses: actions/setup-node@v1
  22. with:
  23. node-version: '10.x'
  24. - name: Restore cache
  25. uses: actions/cache@v1
  26. env:
  27. cache-name: cache-node-modules
  28. with:
  29. path: ~/.npm
  30. key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
  31. restore-keys: ${{ runner.os }}-ci-${{ env.cache-name }}-
  32. - name: Install packages
  33. run: npm ci
  34. - name: === Linting ===
  35. run: npm run test-lint
  36. unit:
  37. name: "Unit testing"
  38. runs-on: ubuntu-latest
  39. steps:
  40. - name: Git checkout
  41. uses: actions/checkout@v2
  42. - name: Install node
  43. uses: actions/setup-node@v1
  44. with:
  45. node-version: '10.x'
  46. - name: Restore cache
  47. uses: actions/cache@v1
  48. env:
  49. cache-name: cache-node-modules
  50. with:
  51. path: ~/.npm
  52. key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
  53. restore-keys: ${{ runner.os }}-ci-${{ env.cache-name }}-
  54. - name: Install packages
  55. run: npm ci && npm run build-test
  56. - name: === Unit testing ===
  57. run: npm run test-unit
  58. e2e:
  59. name: "E2E testing"
  60. runs-on: ubuntu-latest
  61. strategy:
  62. matrix:
  63. CI: [ 0, 1, 2, 3 ]
  64. env:
  65. CI: ${{ matrix.CI }}
  66. FORCE_COLOR: 1
  67. steps:
  68. - name: Git checkout
  69. uses: actions/checkout@v2
  70. - name: Install node
  71. uses: actions/setup-node@v1
  72. with:
  73. node-version: '10.x'
  74. - name: Restore cache
  75. uses: actions/cache@v1
  76. env:
  77. cache-name: cache-node-modules
  78. with:
  79. path: ~/.npm
  80. key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
  81. restore-keys: ${{ runner.os }}-ci-${{ env.cache-name }}-
  82. - name: Install packages
  83. run: npm ci && sudo apt-get install xvfb && npm run build
  84. - name: === E2E testing ===
  85. run: xvfb-run --auto-servernum npm run test-e2e
  86. e2e-cov:
  87. name: "Ready for release"
  88. runs-on: ubuntu-latest
  89. steps:
  90. - name: Git checkout
  91. uses: actions/checkout@v2
  92. - name: Install node
  93. uses: actions/setup-node@v1
  94. with:
  95. node-version: '10.x'
  96. - name: Restore cache
  97. uses: actions/cache@v1
  98. env:
  99. cache-name: cache-node-modules
  100. with:
  101. path: ~/.npm
  102. key: ${{ runner.os }}-ci-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
  103. restore-keys: ${{ runner.os }}-ci-${{ env.cache-name }}-
  104. - name: Install packages
  105. run: npm ci
  106. - name: === Ready for release ===
  107. run: npm run test-e2e-cov