linuxtests.yml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. name: Linux Tests
  2. on:
  3. push:
  4. branches: [3.3.x]
  5. pull_request:
  6. branches: [3.3.x]
  7. release:
  8. types: [published]
  9. jobs:
  10. linuxtests:
  11. name: Linux
  12. strategy:
  13. matrix:
  14. group:
  15. [
  16. integrity,
  17. integrity2,
  18. integrity3,
  19. release_test,
  20. docs,
  21. usage,
  22. usage2,
  23. splice_source,
  24. python,
  25. examples,
  26. interop,
  27. nonode,
  28. linkcheck,
  29. lint,
  30. ]
  31. # This will be used by the base setup action
  32. python-version: ['3.7', '3.10']
  33. include:
  34. - group: release_test
  35. upload-output: true
  36. exclude:
  37. - group: integrity
  38. python-version: '3.7'
  39. - group: integrity2
  40. python-version: '3.7'
  41. - group: integrity3
  42. python-version: '3.7'
  43. - group: release_test
  44. python-version: '3.7'
  45. - group: docs
  46. python-version: '3.7'
  47. - group: usage
  48. python-version: '3.7'
  49. - group: usage2
  50. python-version: '3.7'
  51. - group: linkcheck
  52. python-version: '3.7'
  53. - group: nonode
  54. python-version: '3.7'
  55. - group: lint
  56. python-version: '3.7'
  57. - group: examples
  58. python-version: '3.7'
  59. - group: splice_source
  60. python-version: '3.7'
  61. fail-fast: false
  62. timeout-minutes: 45
  63. runs-on: ubuntu-20.04
  64. steps:
  65. - name: Checkout
  66. uses: actions/checkout@v2
  67. - name: Base Setup
  68. uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
  69. - name: Setup firefox
  70. uses: browser-actions/setup-firefox@latest
  71. - name: Install dependencies
  72. env:
  73. GROUP: ${{ matrix.group }}
  74. run: |
  75. bash ./scripts/ci_install.sh
  76. - name: Run test ${{ matrix.group }}
  77. env:
  78. GROUP: ${{ matrix.group }}
  79. JLAB_BROWSER_TYPE: firefox
  80. run: |
  81. bash ./scripts/ci_script.sh
  82. - name: Upload ${{ matrix.group }} results
  83. if: ${{ matrix.upload-output && always() }}
  84. uses: actions/upload-artifact@v2
  85. with:
  86. name: ${{ matrix.group }} ${{ github.run_number }}
  87. path: ./build/${{ matrix.group }}_output
  88. make_sdist:
  89. name: Make SDist
  90. runs-on: ubuntu-latest
  91. timeout-minutes: 20
  92. steps:
  93. - uses: actions/checkout@v2
  94. - name: Base Setup
  95. uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
  96. - name: Install dependencies
  97. run: |
  98. bash ./scripts/ci_install.sh
  99. - name: Build SDist
  100. run: |
  101. pip install build
  102. python -m build --sdist
  103. - uses: actions/upload-artifact@v2
  104. with:
  105. name: "sdist"
  106. path: dist/*.tar.gz
  107. test_sdist:
  108. runs-on: ubuntu-latest
  109. needs: [make_sdist]
  110. name: Install from SDist and Test
  111. timeout-minutes: 20
  112. steps:
  113. - name: Base Setup
  114. uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
  115. - name: Download sdist
  116. uses: actions/download-artifact@v2
  117. - name: Install From SDist
  118. run: |
  119. set -ex
  120. cd sdist
  121. mkdir test
  122. tar --strip-components=1 -zxvf *.tar.gz -C ./test
  123. cd test
  124. pip install -e .[test]
  125. pip install pytest-github-actions-annotate-failures
  126. - name: Run Test
  127. run: |
  128. cd sdist/test
  129. pytest -vv || pytest -vv --lf
  130. pre-commit:
  131. runs-on: ubuntu-latest
  132. timeout-minutes: 10
  133. steps:
  134. - uses: actions/checkout@v2
  135. - name: Base Setup
  136. uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
  137. - name: Install Jupyterlab
  138. run: pip install -e .
  139. - uses: pre-commit/action@v2.0.0