X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=.github%2Fworkflows%2Ftest.yml;h=f8706d4bef172f73c97c729a313209097b2b4c4e;hb=6f4945126bfc5fcd4df0ae4a73eb0ff79f762657;hp=6edf3bf8c5971e9da65139e1588b5a9db77f778f;hpb=fc3b14e413e45fa239bce359a5648644afaf4c4c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6edf3bf8c..f8706d4be 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,6 +5,7 @@ on: branches: - develop - master + - ci pull_request: types: [synchronize, opened] schedule: @@ -30,9 +31,9 @@ jobs: POSTGRES_HOST_AUTH_METHOD: trust ldap: - image: rroemhild/test-openldap + image: chocobozzz/docker-test-openldap ports: - - 389:389 + - 10389:10389 strategy: fail-fast: false @@ -42,7 +43,7 @@ jobs: env: PGUSER: peertube PGHOST: localhost - NODE_PENDING_JOB_WAIT: 2000 + NODE_PENDING_JOB_WAIT: 500 steps: - uses: actions/checkout@v2 @@ -55,39 +56,60 @@ jobs: - 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.0.3-64bit-static.tar.xz" - tar xf ffmpeg-release-4.0.3-64bit-static.tar.xz + 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: | **/node_modules - ~/fixtures 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 "::set-env name=DISABLE_HTTP_IMPORT_TESTS::true" + 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 }} + run: 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: test*/logs + path: artifacts + retention-days: 7