mirror of
https://github.com/nextcloud/server.git
synced 2026-02-13 15:54:59 -05:00
This means we can all run the same version. And when switching to stableX it can pull the corresponding version too. Also local dev envs and CI run the same phpunit. Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
107 lines
3.9 KiB
YAML
107 lines
3.9 KiB
YAML
name: Performance testing
|
|
on:
|
|
pull_request:
|
|
|
|
jobs:
|
|
performance-testing:
|
|
runs-on: ubuntu-latest
|
|
|
|
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php-versions: ['8.0']
|
|
|
|
name: performance-${{ matrix.php-versions }}
|
|
|
|
steps:
|
|
- name: Checkout server before PR
|
|
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac
|
|
with:
|
|
submodules: true
|
|
ref: ${{ github.event.pull_request.base.ref }}
|
|
|
|
- name: Set up php ${{ matrix.php-versions }}
|
|
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
|
|
with:
|
|
php-version: ${{ matrix.php-versions }}
|
|
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Set up Nextcloud
|
|
run: |
|
|
mkdir data
|
|
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
|
|
|
|
php -S localhost:8080 &
|
|
- name: Apply blueprint
|
|
uses: icewind1991/blueprint@v0.1.2
|
|
with:
|
|
blueprint: tests/blueprints/basic.toml
|
|
ref: ${{ github.event.pull_request.head.ref }}
|
|
- name: Run before measurements
|
|
uses: nextcloud/profiler@1e66a9de5f76a01e9d1db4f0153bcc1cbf989b3d
|
|
with:
|
|
run: |
|
|
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
|
|
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
|
|
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
|
|
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
|
|
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
|
|
output: before.json
|
|
profiler-branch: master
|
|
|
|
- name: Apply PR
|
|
run: |
|
|
git remote add pr ${{ github.event.pull_request.head.repo.clone_url }}
|
|
git fetch pr ${{ github.event.pull_request.head.ref }}
|
|
git checkout -b pr/${{ github.event.pull_request.head.ref }}
|
|
git submodule update
|
|
|
|
./occ upgrade
|
|
|
|
- name: Run after measurements
|
|
id: compare
|
|
uses: nextcloud/profiler@1e66a9de5f76a01e9d1db4f0153bcc1cbf989b3d
|
|
with:
|
|
run: |
|
|
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test
|
|
curl -s -u test:test http://localhost:8080/remote.php/dav/files/test/test.txt
|
|
curl -s -X PROPFIND -u test:test http://localhost:8080/remote.php/dav/files/test/many_files
|
|
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
|
|
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
|
|
output: after.json
|
|
profiler-branch: master
|
|
compare-with: before.json
|
|
|
|
- name: Upload profiles
|
|
if: always()
|
|
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
|
|
with:
|
|
name: profiles
|
|
path: |
|
|
before.json
|
|
after.json
|
|
|
|
- uses: actions/github-script@v6
|
|
if: failure() && steps.compare.outcome == 'failure'
|
|
with:
|
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
|
script: |
|
|
let comment = `Possible performance regression detected\n`;
|
|
comment += `<details><summary>Show Output</summary>
|
|
|
|
\`\`\`
|
|
${{ steps.compare.outputs.compare }}
|
|
\`\`\`
|
|
|
|
</details>`;
|
|
|
|
github.rest.issues.createComment({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
body: comment
|
|
})
|