diff options
-rw-r--r-- | .github/workflows/ci.yml | 50 | ||||
-rw-r--r-- | README.md | 3 | ||||
-rw-r--r-- | devscripts/run_tests.bat | 17 |
3 files changed, 69 insertions, 1 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..99944e848 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,50 @@ +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 . @@ -1,4 +1,5 @@ -[![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 diff --git a/devscripts/run_tests.bat b/devscripts/run_tests.bat new file mode 100644 index 000000000..79359b5a7 --- /dev/null +++ b/devscripts/run_tests.bat @@ -0,0 +1,17 @@ +@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:"=% |