X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=.github%2Fworkflows%2Ftest.yml;h=f942dfa2b45f0406af5388063af6a8dc8a91238f;hb=34caef7fc0710623c6894549423813d53f65b303;hp=feb8853780a1a516bc164d8f0d496daa29fe88c4;hpb=b9fe9a7ffdf80d81c5580ccccfeb989051fd9d8a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index feb885378..f942dfa2b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,6 +1,14 @@ name: Test Suite -on: [push, pull_request] +on: + push: + branches: + - develop + - master + pull_request: + types: [synchronize, opened] + schedule: + - cron: '0 3 * * 1-5' jobs: @@ -21,14 +29,20 @@ jobs: POSTGRES_USER: peertube POSTGRES_HOST_AUTH_METHOD: trust + ldap: + image: rroemhild/test-openldap + ports: + - 389:389 + strategy: - fail-fast: true + fail-fast: false matrix: - test_suite: [ misc, api-1, api-2, api-3, api-4, cli, lint ] + test_suite: [ misc, api-1, api-2, api-3, api-4, cli, lint, external-plugins ] env: PGUSER: peertube PGHOST: localhost + NODE_PENDING_JOB_WAIT: 2000 steps: - uses: actions/checkout@v2 @@ -40,34 +54,56 @@ jobs: - name: Setup system dependencies run: | - sudo apt-get install postgresql-client-common redis-tools - wget --quiet --no-check-certificate "https://download.cpy.re/ffmpeg/ffmpeg-release-4.0.3-64bit-static.tar.xz" - tar xf ffmpeg-release-4.0.3-64bit-static.tar.xz + sudo apt-get install postgresql-client-common redis-tools parallel + wget --quiet --no-check-certificate "https://download.cpy.re/ffmpeg/ffmpeg-release-4.3.1-64bit-static.tar.xz" + tar xf ffmpeg-release-4.3.1-64bit-static.tar.xz mkdir -p $HOME/bin cp ffmpeg-*/{ffmpeg,ffprobe} $HOME/bin - echo "::add-path::$HOME/bin" + echo "$HOME/bin" >> $GITHUB_PATH - name: Cache Node.js modules uses: actions/cache@v2 with: - path: ~/.cache/yarn + path: | + **/node_modules key: ${{ runner.OS }}-node-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.OS }}-node- ${{ runner.OS }}- + - name: Cache fixtures + uses: actions/cache@v2 + with: + path: | + fixtures + key: ${{ runner.OS }}-fixtures-${{ matrix.test_suite }}-${{ hashFiles('fixtures/*') }} + restore-keys: | + ${{ runner.OS }}-fixtures-${{ matrix.test_suite }}- + ${{ runner.OS }}-fixtures- + ${{ runner.OS }}- + - name: Install dependencies run: yarn install --frozen-lockfile - - name: Test - run: echo $PATH + - name: Set env test variable (schedule) + if: github.event_name != 'schedule' + run: | + echo "DISABLE_HTTP_IMPORT_TESTS=true" >> $GITHUB_ENV - name: Run Test + # external-plugins tests only run on schedule + if: github.event_name == 'schedule' || matrix.test_suite != 'external-plugins' run: NODE_PENDING_JOB_WAIT=2000 npm run ci -- ${{ matrix.test_suite }} + - name: Display errors + run: | + (test -f dist/scripts/parse-log.js && NODE_ENV=test node dist/scripts/parse-log.js -l error -f artifacts/*.log) || \ + echo "parse-log.js script does not exist, skipping." + - name: Upload logs uses: actions/upload-artifact@v2 if: failure() with: - name: test-storages - path: test*/logs + name: test-storages-${{ matrix.test_suite }} + path: artifacts + retention-days: 7