name: Core Tests
on: [push, pull_request]
+permissions:
+ contents: read
+
jobs:
tests:
name: Core Tests
strategy:
fail-fast: false
matrix:
- os: [ubuntu-18.04]
- # TODO: python 2.6
- python-version: [2.7, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, pypy-2.7, pypy-3.6, pypy-3.7]
- python-impl: [cpython]
- ytdl-test-set: [core]
+ os: [ubuntu-latest]
+ # CPython 3.11 is in quick-test
+ python-version: ['3.8', '3.9', '3.10', '3.12', pypy-3.7, pypy-3.8, pypy-3.10]
run-tests-ext: [sh]
include:
- # python 3.2 is only available on windows via setup-python
+ # atleast one of each CPython/PyPy tests must be in windows
- os: windows-latest
- python-version: 3.2
- python-impl: cpython
- ytdl-test-set: core
+ python-version: '3.7'
+ run-tests-ext: bat
+ - os: windows-latest
+ python-version: '3.12'
+ run-tests-ext: bat
+ - os: windows-latest
+ python-version: pypy-3.9
run-tests-ext: bat
- # jython
- - os: ubuntu-latest
- python-impl: jython
- ytdl-test-set: core
- run-tests-ext: sh
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
- if: ${{ matrix.python-impl == 'cpython' }}
+ uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- - name: Set up Java 8
- if: ${{ matrix.python-impl == 'jython' }}
- uses: actions/setup-java@v1
- with:
- java-version: 8
- - name: Install Jython
- if: ${{ matrix.python-impl == 'jython' }}
- run: |
- wget https://repo1.maven.org/maven2/org/python/jython-installer/2.7.1/jython-installer-2.7.1.jar -O jython-installer.jar
- java -jar jython-installer.jar -s -d "$HOME/jython"
- echo "$HOME/jython/bin" >> $GITHUB_PATH
- - name: Install nose
- if: ${{ matrix.python-impl != 'jython' }}
- run: pip install nose
- - name: Install nose (Jython)
- if: ${{ matrix.python-impl == 'jython' }}
- # Working around deprecation of support for non-SNI clients at PyPI CDN (see https://status.python.org/incidents/hzmjhqsdjqgb)
- run: |
- wget https://files.pythonhosted.org/packages/99/4f/13fb671119e65c4dce97c60e67d3fd9e6f7f809f2b307e2611f4701205cb/nose-1.3.7-py2-none-any.whl
- pip install nose-1.3.7-py2-none-any.whl
+ - name: Install pytest
+ run: pip install pytest -r requirements.txt
- name: Run tests
- continue-on-error: ${{ matrix.ytdl-test-set == 'download' || matrix.python-impl == 'jython' }}
- env:
- YTDL_TEST_SET: ${{ matrix.ytdl-test-set }}
- run: ./devscripts/run_tests.${{ matrix.run-tests-ext }}
- # Linter is in quick-test
+ continue-on-error: False
+ run: |
+ python3 -m yt_dlp -v || true # Print debug head
+ ./devscripts/run_tests.${{ matrix.run-tests-ext }} core