--- /dev/null
+name: Benchmark
+
+on:
+ push:
+ branches:
+ - ci
+ schedule:
+ - cron: '0 4 * * *'
+
+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
+
+ env:
+ PGUSER: peertube
+ PGHOST: localhost
+ NODE_PENDING_JOB_WAIT: 500
+
+ 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: Build
+ run: |
+ startClient=`date +%s`
+ npm run build:client
+ endClient=`date +%s`
+ clientBuildTime=$((endClient-startClient))
+
+ startServer=`date +%s`
+ npm run build:server
+ endServer=`date +%s`
+ serverBuildTime=$((endServer-startServer))
+
+ echo '{"clientBuildTime":'$clientBuildTime',"serverBuildTime":'$serverBuildTime'}'> build-time.json
+
+ - name: Run benchmark
+ run: |
+ node dist/scripts/benchmark.js benchmark.json
+
+ - name: Display result
+ run: |
+ cat benchmark.json build-time.json
+
+ - name: Upload benchmark result
+ env:
+ STATS_DEPLOYEMENT_KNOWN_HOSTS: ${{ secrets.STATS_DEPLOYEMENT_KNOWN_HOSTS }}
+ STATS_DEPLOYEMENT_KEY: ${{ secrets.STATS_DEPLOYEMENT_KEY }}
+ STATS_DEPLOYEMENT_USER: ${{ secrets.STATS_DEPLOYEMENT_USER }}
+ STATS_DEPLOYEMENT_HOST: ${{ secrets.STATS_DEPLOYEMENT_HOST }}
+ run: |
+ mkdir -p ~/.ssh
+ chmod 700 ~/.ssh
+ if [ ! -z ${STATS_DEPLOYEMENT_KNOWN_HOSTS+x} ]; then
+ echo "Adding ssh key to known hosts"
+ echo -e "${STATS_DEPLOYEMENT_KNOWN_HOSTS}" > ~/.ssh/known_hosts;
+ fi
+
+ eval `ssh-agent -s`
+
+ if [ ! -z ${STATS_DEPLOYEMENT_KEY+x} ]; then
+ echo "Adding ssh reployement key"
+ ssh-add <(echo "${STATS_DEPLOYEMENT_KEY}");
+ fi
+
+ if [ ! -z ${STATS_DEPLOYEMENT_KEY+x} ]; then
+ echo "Uploading files"
+ scp benchmark.json build-time.json ${STATS_DEPLOYEMENT_USER}@${STATS_DEPLOYEMENT_HOST}:../../web/peertube-stats;
+ fi
+++ /dev/null
-name: "Bundlewatch Github Action"
-
-on:
- push:
- branches:
- - develop
- pull_request:
- types: [synchronize, opened]
-
-jobs:
-
- bundlewatch:
- runs-on: ubuntu-latest
-
- env:
- CI_BRANCH_BASE: develop
-
- steps:
- - uses: actions/checkout@v2
-
- - name: Use Node.js
- uses: actions/setup-node@v1
- with:
- node-version: '12.x'
-
- - 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: Install dependencies
- run: yarn install --frozen-lockfile
-
- - name: Angular bundlewatch
- uses: jackyef/bundlewatch-gh-action@master
- with:
- build-script: npm run build -- --analyze-bundle
- branch-base: develop
- bundlewatch-github-token: ${{ secrets.BUNDLEWATCH_GITHUB_TOKEN }}
--- /dev/null
+name: "Stats"
+
+on:
+ push:
+ branches:
+ - develop
+ - ci
+ pull_request:
+ types: [synchronize, opened]
+
+jobs:
+
+ stats:
+ runs-on: ubuntu-latest
+
+ env:
+ CI_BRANCH_BASE: develop
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Use Node.js
+ uses: actions/setup-node@v1
+ with:
+ node-version: '12.x'
+
+ - 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: Install dependencies
+ run: yarn install --frozen-lockfile
+
+ - name: Angular bundlewatch
+ uses: jackyef/bundlewatch-gh-action@master
+ with:
+ build-script: npm run build -- --analyze-bundle
+ branch-base: develop
+ bundlewatch-github-token: ${{ secrets.BUNDLEWATCH_GITHUB_TOKEN }}
+
+ - name: PeerTube client stats
+ if: github.event_name != 'pull_request'
+ run: |
+ node dist/scripts/client-build-stats.js > client-build-stats.json
+
+ - name: PeerTube code stats
+ if: github.event_name != 'pull_request'
+ run: |
+ wget "https://github.com/boyter/scc/releases/download/v3.0.0/scc-3.0.0-x86_64-unknown-linux.zip"
+ unzip "scc-3.0.0-x86_64-unknown-linux.zip"
+ ./scc --format=json --exclude-dir .git,node_modules,client/node_modules,client/dist,dist,yarn.lock,client/yarn.lock,client/src/locale,test1,test2,test3,client/src/assets/images,config,storage,server/tests/fixtures,support/openapi,.idea,.vscode,docker-volume,ffmpeg-3,ffmpeg-4 > ./scc.json
+
+ - name: Display stats
+ if: github.event_name != 'pull_request'
+ run: |
+ cat client-build-stats.json
+ cat scc.json
+
+ - name: Upload stats
+ if: github.event_name != 'pull_request'
+ env:
+ STATS_DEPLOYEMENT_KNOWN_HOSTS: ${{ secrets.STATS_DEPLOYEMENT_KNOWN_HOSTS }}
+ STATS_DEPLOYEMENT_KEY: ${{ secrets.STATS_DEPLOYEMENT_KEY }}
+ STATS_DEPLOYEMENT_USER: ${{ secrets.STATS_DEPLOYEMENT_USER }}
+ STATS_DEPLOYEMENT_HOST: ${{ secrets.STATS_DEPLOYEMENT_HOST }}
+ run: |
+ mkdir -p ~/.ssh
+ chmod 700 ~/.ssh
+ if [ ! -z ${STATS_DEPLOYEMENT_KNOWN_HOSTS+x} ]; then
+ echo "Adding ssh key to known hosts"
+ echo -e "${STATS_DEPLOYEMENT_KNOWN_HOSTS}" > ~/.ssh/known_hosts;
+ fi
+
+ eval `ssh-agent -s`
+
+ if [ ! -z ${STATS_DEPLOYEMENT_KEY+x} ]; then
+ echo "Adding ssh reployement key"
+ ssh-add <(echo "${STATS_DEPLOYEMENT_KEY}");
+ fi
+
+ if [ ! -z ${STATS_DEPLOYEMENT_KEY+x} ]; then
+ echo "Uploading files"
+ scp client-build-stats.json scc.json ${STATS_DEPLOYEMENT_USER}@${STATS_DEPLOYEMENT_HOST}:../../web/peertube-stats;
+ fi
branches:
- develop
- master
+ - ci
pull_request:
types: [synchronize, opened]
schedule: