ci.yml 2.9 KB

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