name: CI on: [push, pull_request] jobs: tests: name: Tests runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: os: [ubuntu-20.04] # TODO: python 2.6 # TODO: restore support for 3.3, 3.4 python-version: [2.7, 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, download] run-tests-ext: [sh] include: # python 3.2 is only available on windows via setup-python - os: windows-2019 python-version: 3.2 python-impl: cpython ytdl-test-set: core run-tests-ext: bat - os: windows-2019 python-version: 3.2 python-impl: cpython ytdl-test-set: download run-tests-ext: bat # jython - os: ubuntu-20.04 python-impl: jython ytdl-test-set: core run-tests-ext: sh - os: ubuntu-20.04 python-impl: jython ytdl-test-set: download run-tests-ext: sh steps: - uses: actions/checkout@v3 - name: Set up supported Python ${{ matrix.python-version }} uses: actions/setup-python@v4 if: ${{ matrix.python-impl == 'cpython' && ! contains(fromJSON('["3.3", "3.4"]'), matrix.python-version) }} with: python-version: ${{ matrix.python-version }} - name: Set up Java 8 if: ${{ matrix.python-impl == 'jython' }} uses: actions/setup-java@v2 with: java-version: 8 distribution: 'zulu' - 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: 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 }} flake8: name: Linter runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3.9 - name: Install flake8 run: pip install flake8 - name: Run flake8 run: flake8 .