--- /dev/null
+name: CI
+on: [push]
+jobs:
+ tests:
+ name: Tests
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: true
+ matrix:
+ os: [ubuntu-latest]
+ # 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]
+ ytdl-test-set: [core, download]
+ run-tests-ext: [sh]
+ include:
+ # python 3.2 is only available on windows via setup-python
+ - os: windows-latest
+ python-version: 3.2
+ ytdl-test-set: core
+ run-tests-ext: bat
+ - os: windows-latest
+ python-version: 3.2
+ ytdl-test-set: download
+ run-tests-ext: bat
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install nose
+ run: pip install nose
+ - name: Run tests
+ continue-on-error: ${{ matrix.ytdl-test-set == 'download' }}
+ 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@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: Install flake8
+ run: pip install flake8
+ - name: Run flake8
+ run: flake8 .
-[![Build Status](https://travis-ci.com/ytdl-org/youtube-dl.svg?branch=master)](https://travis-ci.com/ytdl-org/youtube-dl)
+[![Build Status](https://github.com/ytdl-org/youtube-dl/workflows/CI/badge.svg)](https://github.com/ytdl-org/youtube-dl/actions?query=workflow%3ACI)
+
youtube-dl - download videos from youtube.com or other video platforms
--- /dev/null
+@echo off
+
+rem Keep this list in sync with the `offlinetest` target in Makefile
+set DOWNLOAD_TESTS="age_restriction^|download^|iqiyi_sdk_interpreter^|socks^|subtitles^|write_annotations^|youtube_lists^|youtube_signature"
+
+if "%YTDL_TEST_SET%" == "core" (
+ set test_set="-I test_("%DOWNLOAD_TESTS%")\.py"
+ set multiprocess_args=""
+) else if "%YTDL_TEST_SET%" == "download" (
+ set test_set="-I test_(?!"%DOWNLOAD_TESTS%").+\.py"
+ set multiprocess_args="--processes=4 --process-timeout=540"
+) else (
+ echo YTDL_TEST_SET is not set or invalid
+ exit /b 1
+)
+
+nosetests test --verbose %test_set:"=% %multiprocess_args:"=%