schedule_tests.yml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. name: Schedule tests
  2. on:
  3. workflow_dispatch:
  4. concurrency:
  5. group: ${{ github.workflow }}-${{ github.ref }}
  6. cancel-in-progress: true
  7. permissions:
  8. contents: read
  9. jobs:
  10. windows:
  11. runs-on: windows-latest
  12. strategy:
  13. matrix:
  14. python-version:
  15. - '3.10'
  16. - '3.11'
  17. - '3.12'
  18. - '3.13-dev'
  19. name: Windows, SQLite, Python ${{ matrix.python-version }}
  20. continue-on-error: true
  21. steps:
  22. - name: Checkout
  23. uses: actions/checkout@v4
  24. - name: Set up Python
  25. uses: actions/setup-python@v4
  26. with:
  27. python-version: ${{ matrix.python-version }}
  28. cache: 'pip'
  29. cache-dependency-path: 'tests/requirements/py3.txt'
  30. - name: Install and upgrade packaging tools
  31. run: python -m pip install --upgrade pip setuptools wheel
  32. - run: python -m pip install -r tests/requirements/py3.txt -e .
  33. - name: Run tests
  34. run: python tests/runtests.py -v2
  35. pypy:
  36. runs-on: ubuntu-latest
  37. name: Ubuntu, SQLite, PyPy3.10
  38. continue-on-error: true
  39. steps:
  40. - name: Checkout
  41. uses: actions/checkout@v4
  42. - name: Set up Python
  43. uses: actions/setup-python@v4
  44. with:
  45. python-version: pypy-3.10-nightly
  46. cache: 'pip'
  47. cache-dependency-path: 'tests/requirements/py3.txt'
  48. - name: Install and upgrade packaging tools
  49. run: python -m pip install --upgrade pip setuptools wheel
  50. - run: python -m pip install -r tests/requirements/py3.txt -e .
  51. - name: Run tests
  52. run: python tests/runtests.py -v2
  53. javascript-tests:
  54. runs-on: ubuntu-latest
  55. name: JavaScript tests
  56. steps:
  57. - name: Checkout
  58. uses: actions/checkout@v4
  59. - name: Set up Node.js
  60. uses: actions/setup-node@v3
  61. with:
  62. node-version: '20'
  63. cache: 'npm'
  64. cache-dependency-path: '**/package.json'
  65. - run: npm install
  66. - run: npm test
  67. selenium-sqlite:
  68. runs-on: ubuntu-latest
  69. name: Selenium tests, SQLite
  70. steps:
  71. - name: Checkout
  72. uses: actions/checkout@v4
  73. - name: Set up Python
  74. uses: actions/setup-python@v4
  75. with:
  76. python-version: '3.12'
  77. cache: 'pip'
  78. cache-dependency-path: 'tests/requirements/py3.txt'
  79. - name: Install libmemcached-dev for pylibmc
  80. run: sudo apt-get install libmemcached-dev
  81. - name: Install and upgrade packaging tools
  82. run: python -m pip install --upgrade pip setuptools wheel
  83. - run: python -m pip install -r tests/requirements/py3.txt -e .
  84. - name: Run Selenium tests
  85. working-directory: ./tests/
  86. run: |
  87. python -Wall runtests.py --verbosity 2 --noinput --selenium=chrome --headless --settings=test_sqlite --parallel 2
  88. selenium-postgresql:
  89. runs-on: ubuntu-latest
  90. name: Selenium tests, PostgreSQL
  91. services:
  92. postgres:
  93. image: postgres:13-alpine
  94. env:
  95. POSTGRES_DB: django
  96. POSTGRES_USER: user
  97. POSTGRES_PASSWORD: postgres
  98. ports:
  99. - 5432:5432
  100. options: >-
  101. --health-cmd pg_isready
  102. --health-interval 10s
  103. --health-timeout 5s
  104. --health-retries 5
  105. steps:
  106. - name: Checkout
  107. uses: actions/checkout@v4
  108. - name: Set up Python
  109. uses: actions/setup-python@v4
  110. with:
  111. python-version: '3.12'
  112. cache: 'pip'
  113. cache-dependency-path: 'tests/requirements/py3.txt'
  114. - name: Install libmemcached-dev for pylibmc
  115. run: sudo apt-get install libmemcached-dev
  116. - name: Install and upgrade packaging tools
  117. run: python -m pip install --upgrade pip setuptools wheel
  118. - run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e .
  119. - name: Create PostgreSQL settings file
  120. run: mv ./.github/workflows/data/test_postgres.py.tpl ./tests/test_postgres.py
  121. - name: Run Selenium tests
  122. working-directory: ./tests/
  123. run: |
  124. python -Wall runtests.py --verbosity 2 --noinput --selenium=chrome --headless --settings=test_postgres --parallel 2