1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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@v4
- - uses: './.github/actions/reusable-prepare-peertube-build'
- with:
- node-version: '18.x'
- - uses: './.github/actions/reusable-prepare-peertube-run'
- - name: Build
- run: |
- startClient=`date +%s`
- npm run build:server
- 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 }}
|