123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- name: Test Suite
- on:
- push:
- branches:
- - develop
- - master
- pull_request:
- types: [synchronize, opened]
- schedule:
- - cron: '0 3 * * 1-5'
- jobs:
- test:
- runs-on: ubuntu-latest
- services:
- redis:
- image: redis
- ports:
- - 6379:6379
- postgres:
- image: postgres:9.6
- ports:
- - 5432:5432
- env:
- POSTGRES_USER: peertube
- POSTGRES_HOST_AUTH_METHOD: trust
- ldap:
- image: chocobozzz/docker-test-openldap
- ports:
- - 10389:10389
- strategy:
- fail-fast: false
- matrix:
- 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
- - name: Use Node.js
- uses: actions/setup-node@v1
- with:
- node-version: '12.x'
- - name: Setup system dependencies
- run: |
- 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 "$HOME/bin" >> $GITHUB_PATH
- - name: Cache Node.js modules
- uses: actions/cache@v2
- with:
- 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: 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
- if: ${{ always() }}
- run: |
- ( \
- test -f dist/scripts/parse-log.js && \
- cat *-ci.log | uniq -c && \
- 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-${{ matrix.test_suite }}
- path: artifacts
- retention-days: 7
|