PeerTube/.github/workflows/benchmark.yml

90 lines
2.4 KiB
YAML
Raw Normal View History

2021-02-23 02:44:40 -06:00
name: Benchmark
on:
push:
branches:
- ci
schedule:
2021-02-24 07:01:00 -06:00
- cron: '0 */12 * * *'
2021-02-23 02:44:40 -06: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
env:
PGUSER: peertube
PGHOST: localhost
steps:
2024-02-06 00:34:58 -06:00
- uses: actions/checkout@v4
2021-02-23 02:44:40 -06:00
2021-12-01 07:14:58 -06:00
- uses: './.github/actions/reusable-prepare-peertube-build'
2021-02-23 02:44:40 -06:00
with:
node-version: '18.x'
2021-02-23 02:44:40 -06:00
2021-12-01 07:14:58 -06:00
- uses: './.github/actions/reusable-prepare-peertube-run'
2021-02-23 02:44:40 -06:00
- name: Build
run: |
startClient=`date +%s`
2023-08-17 08:03:27 -05:00
npm run build:server
2021-02-23 02:44:40 -06:00
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
2021-11-22 08:50:54 -06:00
- name: Startup
run: |
2021-11-22 08:54:08 -06:00
npm run clean:server:test
2021-11-22 08:50:54 -06:00
2021-11-24 08:52:45 -06:00
startCold=`date +%s%3N`
2021-11-22 08:50:54 -06:00
NODE_APP_INSTANCE=1 NODE_ENV=test node dist/server --benchmark-startup
2021-11-24 08:52:45 -06:00
endCold=`date +%s%3N`
coldStartupTime=$(echo "scale=2; ($endCold-$startCold)/1000" | bc)
2021-11-22 08:50:54 -06:00
2021-11-24 08:52:45 -06:00
startHot=`date +%s%3N`
2021-11-22 08:50:54 -06:00
NODE_APP_INSTANCE=1 NODE_ENV=test node dist/server --benchmark-startup
2021-11-24 08:52:45 -06:00
endHot=`date +%s%3N`
hotStartupTime=$(echo "scale=2; ($endHot-$startHot)/1000" | bc)
2021-11-22 08:50:54 -06:00
echo '{"coldStartupTime":'$coldStartupTime',"hotStartupTime":'$hotStartupTime'}'> startup-time.json
2021-02-23 02:44:40 -06:00
- name: Run benchmark
run: |
npm run benchmark-server -- -o benchmark.json
2021-02-23 02:44:40 -06:00
- name: Display result
run: |
2021-11-22 08:50:54 -06:00
cat benchmark.json build-time.json startup-time.json
2021-02-23 02:44:40 -06:00
- name: Upload benchmark result
2021-12-03 06:35:23 -06:00
uses: './.github/actions/reusable-deploy'
2021-12-01 07:14:58 -06:00
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 }}