1
0
Fork 0
peertube/.github/workflows/test.yml

116 lines
3 KiB
YAML
Raw Normal View History

2020-07-30 02:46:11 -04:00
name: Test Suite
on:
push:
2020-08-06 03:47:35 -04:00
branches:
- develop
- master
2021-02-23 03:44:40 -05:00
- ci
pull_request:
2020-08-06 03:47:35 -04:00
types: [synchronize, opened]
schedule:
2020-07-31 03:13:13 -04:00
- cron: '0 3 * * 1-5'
2020-07-30 02:46:11 -04:00
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
2020-07-30 10:25:00 -04:00
ldap:
2021-01-04 05:38:33 -05:00
image: chocobozzz/docker-test-openldap
2020-07-30 10:25:00 -04:00
ports:
2021-01-04 05:38:33 -05:00
- 10389:10389
2020-07-30 10:25:00 -04:00
2020-07-30 02:46:11 -04:00
strategy:
fail-fast: false
2020-07-30 02:46:11 -04:00
matrix:
2020-07-30 10:25:00 -04:00
test_suite: [ misc, api-1, api-2, api-3, api-4, cli, lint, external-plugins ]
2020-07-30 02:46:11 -04:00
env:
PGUSER: peertube
PGHOST: localhost
2021-02-18 08:44:12 -05:00
NODE_PENDING_JOB_WAIT: 500
2020-07-30 02:46:11 -04:00
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: Setup system dependencies
run: |
2020-07-30 08:44:08 -04:00
sudo apt-get install postgresql-client-common redis-tools parallel
2020-11-06 10:43:43 -05:00
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
2020-07-30 02:46:11 -04:00
mkdir -p $HOME/bin
cp ffmpeg-*/{ffmpeg,ffprobe} $HOME/bin
2020-11-10 02:50:49 -05:00
echo "$HOME/bin" >> $GITHUB_PATH
2020-07-30 02:46:11 -04:00
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: |
**/node_modules
2020-07-30 02:46:11 -04:00
key: ${{ runner.OS }}-node-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
2020-08-24 10:37:47 -04:00
- 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 }}-
2020-07-30 02:46:11 -04:00
- name: Install dependencies
run: yarn install --frozen-lockfile
2020-07-30 10:58:32 -04:00
- name: Set env test variable (schedule)
if: github.event_name != 'schedule'
2020-07-30 10:58:32 -04:00
run: |
2020-11-10 02:50:49 -05:00
echo "DISABLE_HTTP_IMPORT_TESTS=true" >> $GITHUB_ENV
2020-07-30 02:46:11 -04:00
- name: Run Test
2020-07-31 03:13:13 -04:00
# external-plugins tests only run on schedule
if: github.event_name == 'schedule' || matrix.test_suite != 'external-plugins'
2021-02-18 08:44:12 -05:00
run: npm run ci -- ${{ matrix.test_suite }}
2020-07-30 02:46:11 -04:00
2020-12-10 10:08:26 -05:00
- name: Display errors
2021-01-04 04:52:27 -05:00
if: ${{ always() }}
2020-11-30 03:16:41 -05:00
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 \
) || \
2020-12-10 10:38:12 -05:00
echo "parse-log.js script does not exist, skipping."
2020-11-30 03:16:41 -05:00
2020-07-30 02:46:11 -04:00
- name: Upload logs
uses: actions/upload-artifact@v2
if: failure()
with:
name: test-storages-${{ matrix.test_suite }}
2020-12-10 05:24:17 -05:00
path: artifacts
retention-days: 7