]>
Commit | Line | Data |
---|---|---|
b202d007 | 1 | name: Test |
b9fe9a7f | 2 | |
a613eea4 C |
3 | on: |
4 | push: | |
5 | pull_request: | |
fc3b14e4 | 6 | types: [synchronize, opened] |
a613eea4 | 7 | schedule: |
f9e1ca70 | 8 | - cron: '0 3 * * 1-5' |
b9fe9a7f C |
9 | |
10 | jobs: | |
11 | ||
12 | test: | |
13 | runs-on: ubuntu-latest | |
14 | ||
15 | services: | |
16 | redis: | |
17 | image: redis | |
18 | ports: | |
19 | - 6379:6379 | |
20 | ||
21 | postgres: | |
0d22b7ad | 22 | image: postgres:10 |
b9fe9a7f C |
23 | ports: |
24 | - 5432:5432 | |
25 | env: | |
26 | POSTGRES_USER: peertube | |
27 | POSTGRES_HOST_AUTH_METHOD: trust | |
28 | ||
12e8547f | 29 | ldap: |
0158eeb0 | 30 | image: chocobozzz/docker-test-openldap |
12e8547f | 31 | ports: |
0158eeb0 | 32 | - 10389:10389 |
12e8547f | 33 | |
0305db28 | 34 | s3ninja: |
1f6125be | 35 | image: chocobozzz/s3-ninja |
0305db28 JB |
36 | ports: |
37 | - 9444:9000 | |
38 | ||
b9fe9a7f | 39 | strategy: |
b488ba1e | 40 | fail-fast: false |
b9fe9a7f | 41 | matrix: |
95faf1ea | 42 | test_suite: [ types-package, client, api-1, api-2, api-3, api-4, api-5, cli-plugin, lint, external-plugins ] |
b9fe9a7f C |
43 | |
44 | env: | |
45 | PGUSER: peertube | |
46 | PGHOST: localhost | |
4b91bc15 | 47 | NODE_PENDING_JOB_WAIT: 250 |
0305db28 | 48 | ENABLE_OBJECT_STORAGE_TESTS: true |
b9fe9a7f C |
49 | |
50 | steps: | |
388a31d2 | 51 | - uses: actions/checkout@v3 |
b9fe9a7f | 52 | |
51e9e152 | 53 | - uses: './.github/actions/reusable-prepare-peertube-build' |
b9fe9a7f | 54 | with: |
4ff75a3b | 55 | node-version: '14.x' |
b9fe9a7f | 56 | |
51e9e152 | 57 | - uses: './.github/actions/reusable-prepare-peertube-run' |
b9fe9a7f | 58 | |
07491f4b | 59 | - name: Cache fixtures |
388a31d2 | 60 | uses: actions/cache@v3 |
07491f4b C |
61 | with: |
62 | path: | | |
63 | fixtures | |
64 | key: ${{ runner.OS }}-fixtures-${{ matrix.test_suite }}-${{ hashFiles('fixtures/*') }} | |
65 | restore-keys: | | |
66 | ${{ runner.OS }}-fixtures-${{ matrix.test_suite }}- | |
67 | ${{ runner.OS }}-fixtures- | |
68 | ${{ runner.OS }}- | |
69 | ||
f9d2deae | 70 | - name: Set env test variable (schedule) |
a613eea4 | 71 | if: github.event_name != 'schedule' |
f9d2deae | 72 | run: | |
79389bff | 73 | echo "DISABLE_HTTP_IMPORT_TESTS=true" >> $GITHUB_ENV |
a613eea4 | 74 | |
b9fe9a7f | 75 | - name: Run Test |
f9e1ca70 C |
76 | # external-plugins tests only run on schedule |
77 | if: github.event_name == 'schedule' || matrix.test_suite != 'external-plugins' | |
36305301 C |
78 | env: |
79 | AKISMET_KEY: ${{ secrets.AKISMET_KEY }} | |
fae6e4da | 80 | run: npm run ci -- ${{ matrix.test_suite }} |
b9fe9a7f | 81 | |
12554857 | 82 | - name: Display errors |
4f5a90ef | 83 | if: ${{ always() }} |
0484ec9e | 84 | run: | |
5ec8a71f C |
85 | ( \ |
86 | test -f dist/scripts/parse-log.js && \ | |
5ec8a71f C |
87 | NODE_ENV=test node dist/scripts/parse-log.js -l error -f artifacts/*.log \ |
88 | ) || \ | |
34caef7f | 89 | echo "parse-log.js script does not exist, skipping." |
0484ec9e | 90 | |
b9fe9a7f | 91 | - name: Upload logs |
8c13fd74 | 92 | uses: actions/upload-artifact@v3 |
b9fe9a7f C |
93 | if: failure() |
94 | with: | |
b488ba1e | 95 | name: test-storages-${{ matrix.test_suite }} |
83ef31fe C |
96 | path: artifacts |
97 | retention-days: 7 |