12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- name: Benchmark
- on:
- push:
- branches:
- - ci
- schedule:
- - cron: '0 */12 * * *'
- 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
- steps:
- - uses: actions/checkout@v3
- - uses: './.github/actions/reusable-prepare-peertube-build'
- with:
- node-version: '16.x'
- - uses: './.github/actions/reusable-prepare-peertube-run'
- - 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: Startup
- run: |
- npm run clean:server:test
- startCold=`date +%s%3N`
- NODE_APP_INSTANCE=1 NODE_ENV=test node dist/server --benchmark-startup
- endCold=`date +%s%3N`
- coldStartupTime=$(echo "scale=2; ($endCold-$startCold)/1000" | bc)
- startHot=`date +%s%3N`
- NODE_APP_INSTANCE=1 NODE_ENV=test node dist/server --benchmark-startup
- endHot=`date +%s%3N`
- hotStartupTime=$(echo "scale=2; ($endHot-$startHot)/1000" | bc)
- echo '{"coldStartupTime":'$coldStartupTime',"hotStartupTime":'$hotStartupTime'}'> startup-time.json
- - name: Run benchmark
- run: |
- npm run benchmark-server -- -o benchmark.json
- - name: Display result
- run: |
- cat benchmark.json build-time.json startup-time.json
- - name: Upload benchmark result
- uses: './.github/actions/reusable-deploy'
- with:
- source: benchmark.json build-time.json startup-time.json
- destination: peertube-stats
- knownHosts: ${{ secrets.STATS_DEPLOYEMENT_KNOWN_HOSTS }}
- deployKey: ${{ secrets.STATS_DEPLOYEMENT_KEY }}
- deployUser: ${{ secrets.STATS_DEPLOYEMENT_USER }}
- deployHost: ${{ secrets.STATS_DEPLOYEMENT_HOST }}
|