]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - .github/workflows/test.yml
Use postgres 10 for tests
[github/Chocobozzz/PeerTube.git] / .github / workflows / test.yml
index 28ebf2ca92d76e49a3af6d1980b45ca36e1c9857..78a9a28c03e7b098e3c4196f092265864d1886b9 100644 (file)
@@ -3,8 +3,9 @@ name: Test Suite
 on:
   push:
   pull_request:
+    types: [synchronize, opened]
   schedule:
-    - cron: '0 0 * * 1-5'
+    - cron: '0 3 * * 1-5'
 
 jobs:
 
@@ -18,7 +19,7 @@ jobs:
           - 6379:6379
 
       postgres:
-        image: postgres:9.6
+        image: postgres:10
         ports:
           - 5432:5432
         env:
@@ -26,19 +27,25 @@ jobs:
           POSTGRES_HOST_AUTH_METHOD: trust
 
       ldap:
-        image: rroemhild/test-openldap
+        image: chocobozzz/docker-test-openldap
         ports:
-          - 389:389
+          - 10389:10389
+
+      s3ninja:
+        image: chocobozzz/s3-ninja
+        ports:
+          - 9444:9000
 
     strategy:
       fail-fast: false
       matrix:
-        test_suite: [ misc, api-1, api-2, api-3, api-4, cli, lint, external-plugins ]
+        test_suite: [ client, api-1, api-2, api-3, api-4, cli-plugin, lint, external-plugins ]
 
     env:
       PGUSER: peertube
       PGHOST: localhost
-      NODE_PENDING_JOB_WAIT: 2000
+      NODE_PENDING_JOB_WAIT: 250
+      ENABLE_OBJECT_STORAGE_TESTS: true
 
     steps:
       - uses: actions/checkout@v2
@@ -51,36 +58,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 videos import enabled env variable
+      - name: Set env test variable (schedule)
         if: github.event_name != 'schedule'
-        run: echo "::set-env name=DISABLE_HTTP_IMPORT_TESTS::true"
+        run: |
+          echo "DISABLE_HTTP_IMPORT_TESTS=true" >> $GITHUB_ENV
 
       - name: Run Test
-        run: NODE_PENDING_JOB_WAIT=2000 npm run ci -- ${{ matrix.test_suite }}
+        # external-plugins tests only run on schedule
+        if: github.event_name == 'schedule' || matrix.test_suite != 'external-plugins'
+        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