ci.yml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. name: CI
  2. on: [push, pull_request]
  3. jobs:
  4. unit_tests:
  5. name: Unit tests
  6. runs-on: ubuntu-latest
  7. strategy:
  8. matrix:
  9. node-version: [12.x, 14.x, 16.x, 17.x]
  10. steps:
  11. - name: Checkout sources
  12. uses: actions/checkout@v2
  13. - name: Install Node.js
  14. uses: actions/setup-node@v2
  15. with:
  16. node-version: ${{matrix.node-version}}
  17. - name: Install Corepack if needed
  18. run: corepack -v || npm install -g corepack
  19. - name: Install dependencies
  20. run: corepack yarn install --immutable
  21. - name: Run tests
  22. run: corepack yarn run test:unit
  23. lint_js:
  24. name: Lint JavaScript/TypeScript
  25. runs-on: ubuntu-latest
  26. steps:
  27. - name: Checkout sources
  28. uses: actions/checkout@v2
  29. - name: Cache npm dependencies
  30. id: cache-npm-libraries
  31. uses: actions/cache@v2
  32. with:
  33. path: .yarn/cache/*
  34. key: ${{ runner.os }}
  35. - name: Install Node.js
  36. uses: actions/setup-node@v2
  37. with:
  38. node-version: 16.x
  39. - name: Install dependencies
  40. run: corepack yarn install --immutable
  41. - name: Run linter
  42. run: corepack yarn run lint
  43. lint_md:
  44. name: Lint Markdown
  45. runs-on: ubuntu-latest
  46. steps:
  47. - name: Checkout sources
  48. uses: actions/checkout@v2
  49. - name: Cache npm dependencies
  50. id: cache-npm-libraries
  51. uses: actions/cache@v2
  52. with:
  53. path: .yarn/cache/*
  54. key: ${{ runner.os }}
  55. - name: Install Node.js
  56. uses: actions/setup-node@v2
  57. with:
  58. node-version: 16.x
  59. - name: Install dependencies
  60. run: corepack yarn install --immutable
  61. - name: Run linter
  62. run: corepack yarn run lint:markdown
  63. types:
  64. name: Type tests
  65. runs-on: ubuntu-latest
  66. steps:
  67. - name: Checkout sources
  68. uses: actions/checkout@v2
  69. - name: Install Node.js
  70. uses: actions/setup-node@v2
  71. with:
  72. node-version: 16.x
  73. - name: Install dependencies
  74. run: corepack yarn install --immutable
  75. # Need to do a bunch of work to generate the locale typings 🙃
  76. - name: Prepare type declarations
  77. run: |
  78. corepack yarn run build:lib
  79. corepack yarn run build:companion
  80. corepack yarn run build:locale-pack
  81. - name: Run type tests
  82. run: corepack yarn run test:type