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 @@ -[](https://travis-ci.com/ytdl-org/youtube-dl) +[](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:"=%  | 
