forked from owncloud/cdperf
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request owncloud#53 from owncloud/work-on-rc5
prepare rc.5
- Loading branch information
Showing
293 changed files
with
87,535 additions
and
6,045 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
@fschade @micbar @refs @phil-davis | ||
@fschade @micbar @dragotin @phil-davis |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
## Submitting issues | ||
|
||
If you have questions about how to install or use ownCloud, please direct these to our [forum][forum]. | ||
For getting in touch with the developers, join our public [RocketChat][rocketchat]. | ||
|
||
### Short version | ||
|
||
* Submit your issue to our [issue tracker][tracker], but be aware of the different repositories. See the list below. Please always use the issue template when reporting issues. | ||
|
||
### Guidelines | ||
* Please search the existing issues first, it's likely that your issue was already reported or even fixed. | ||
- Go to one of the repositories, click "issues" and type any word in the top search/command bar. | ||
- You can also filter by appending e.g. "state:open" to the search string. | ||
- More info on [search syntax within github](https://help.github.com/articles/searching-issues) | ||
* __SECURITY__: Report any potential security bug to us via [our HackerOne page](https://hackerone.com/owncloud) or [email protected] following our [security policy](https://owncloud.org/security/) instead of filing an issue in our bug tracker | ||
* This repository ([cdPerf](https://github.com/owncloud/cdperf/issues)) is *only* for issues within the cdPerf code. | ||
* The issues in other components should be reported in their respective repositories: | ||
- [web](https://github.com/owncloud/web/issues) | ||
- [ownCloud Infinite Scale](https://github.com/owncloud/ocis/issues) | ||
- [ownCloud Classic](https://github.com/owncloud/core/issues) | ||
- [Android client](https://github.com/owncloud/android/issues) | ||
- [iOS client](https://github.com/owncloud/ios-app) | ||
- [Desktop client](https://github.com/owncloud/client/issues) | ||
- [Documentation](https://github.com/owncloud/docs/issues) | ||
- [ownCloud apps](https://github.com/owncloud/core/wiki/Apps) | ||
* Submit your issue to our [issue tracker][tracker]. Please stick to our issue template, it includes all the information we need to track down the issue. | ||
|
||
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues. | ||
|
||
[tracker]: https://github.com/owncloud/cdperf/issues/new | ||
[forum]: https://central.owncloud.org/ | ||
[rocketchat]: https://talk.owncloud.com/ | ||
|
||
## Contributing to Source Code | ||
|
||
Thanks for wanting to contribute source code to ownCloud. That's great! | ||
|
||
Before we're able to merge your code, you need to sign our [Contributor Agreement][agreement]. You can sign it digitally as soon as you open your first pull request. | ||
|
||
In order to constantly increase the quality of our software we can no longer accept pull requests which submit un-tested code. | ||
We have the goal that code segments are unit tested. Please try to help us with that goal. In some areas unit testing is hard | ||
(aka almost impossible) as of today - in these areas refactoring WHILE fixing a bug is encouraged to enable unit testing. | ||
|
||
[agreement]: https://owncloud.com/contribute/join-the-development/contributor-agreement/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
name: deploy | ||
|
||
on: | ||
workflow_dispatch: {} | ||
push: | ||
branches: | ||
- main | ||
jobs: | ||
deploy: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
pages: write | ||
id-token: write | ||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
- uses: pnpm/action-setup@v2 | ||
with: | ||
version: 7 | ||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18 | ||
cache: pnpm | ||
- run: pnpm install | ||
- name: Build | ||
run: pnpm run docs:build | ||
- uses: actions/configure-pages@v2 | ||
- uses: actions/upload-pages-artifact@v1 | ||
with: | ||
path: .vitepress/dist | ||
- name: Deploy | ||
id: deployment | ||
uses: actions/deploy-pages@v1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,3 +5,4 @@ | |
dist | ||
lib | ||
node_modules | ||
cache |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
import {defineConfig} from 'vitepress'; | ||
import * as glob from 'fast-glob'; | ||
import * as path from 'path'; | ||
import {createRequire} from 'module' | ||
import {lowerCase} from 'lodash'; | ||
|
||
// @ts-ignore | ||
const require = createRequire(import.meta.url) | ||
const pkg = require('../package.json') | ||
|
||
const sidebarK6Tests = () => { | ||
|
||
const testsNavigation = Object.values(glob.sync(['tests/**/*.md'], { | ||
cwd: path.dirname(require.resolve('../packages/k6-tests/package.json')) | ||
}).map(item => { | ||
const info = path.parse(item) | ||
const name = info.dir.split('/').slice(1).map(lowerCase).join(' / ') | ||
return {text: '- ' + name, link: path.join('/k6-tests/', info.dir, info.name)} | ||
})) | ||
|
||
const srcNavigation = Object.values(glob.sync(['src/**/*.md'], { | ||
cwd: path.dirname(require.resolve('../packages/k6-tests/package.json')) | ||
}).map(item => { | ||
const info = path.parse(item) | ||
const name = [...info.dir.split('/').slice(1), info.name].map(lowerCase).join(' / ') | ||
return {text: '- ' + name, link: path.join('/k6-tests/', info.dir, info.name)} | ||
})) | ||
|
||
return { | ||
'/k6-tests/': [ | ||
{ | ||
text: 'Introduction', | ||
collapsed: false, | ||
items: [ | ||
{text: '- Welcome', link: '/k6-tests/docs/'}, | ||
{text: '- Considerations', link: '/k6-tests/docs/considerations'}, | ||
{text: '- Hot to run', link: '/k6-tests/docs/run'}, | ||
] | ||
}, | ||
{ | ||
text: 'Src', | ||
collapsed: false, | ||
items: srcNavigation | ||
}, | ||
{ | ||
text: 'Tests', | ||
collapsed: false, | ||
items: testsNavigation | ||
}, | ||
], | ||
} | ||
} | ||
|
||
const vitePressConfig = defineConfig({ | ||
lang: 'en-US', | ||
title: 'cdPerf', | ||
description: 'ownCloud cloud testing toolbox.', | ||
lastUpdated: true, | ||
cleanUrls: true, | ||
base: '/cdperf/', | ||
srcExclude: [ | ||
'README.md' | ||
], | ||
head: [ | ||
['meta', {name: 'theme-color', content: '#3c8772'}], | ||
], | ||
|
||
rewrites: { | ||
'docs/(.*)': '(.*)', | ||
'packages/:pkg/:ds(docs|tests|src)/(.*)': ':pkg/:ds/(.*)', | ||
}, | ||
|
||
themeConfig: { | ||
nav: [ | ||
{ | ||
text: 'Infinite Scale', | ||
link: 'https://github.com/owncloud/ocis' | ||
}, | ||
{ | ||
text: 'Web', | ||
link: 'https://github.com/owncloud/web' | ||
}, | ||
{ | ||
text: 'ownCloud', | ||
link: 'https://owncloud.com/' | ||
}, | ||
{ | ||
text: pkg.version, | ||
items: [ | ||
{ | ||
text: 'Contributing', | ||
link: 'https://github.com/owncloud/cdperf/blob/main/.github/contributing.md' | ||
} | ||
] | ||
} | ||
], | ||
|
||
sidebar: { | ||
...sidebarK6Tests() | ||
}, | ||
|
||
socialLinks: [ | ||
{icon: 'github', link: 'https://github.com/owncloud/cdperf'} | ||
], | ||
|
||
footer: { | ||
message: 'Released under the Apache-2.0 License.', | ||
copyright: `Copyright (c) ${new Date().getFullYear()} ownCloud GmbH <https://owncloud.com>` | ||
}, | ||
} | ||
}) | ||
|
||
export default vitePressConfig |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,77 +1,34 @@ | ||
# ownCloud cloud testing toolbox | ||
|
||
This repository contains the tools we use to test and measure the performance of different cloud systems. | ||
|
||
Supported clouds are: | ||
## Supported clouds | ||
* [ownCloud Core](https://github.com/owncloud/core) | ||
* [Infinite Scale](https://github.com/owncloud/ocis) | ||
* [Nextcloud](https://github.com/nextcloud/server/) | ||
|
||
## Requirements | ||
* [K6](https://k6.io/) (if k6 should run on the host machine) | ||
|
||
## Usage | ||
cdPerf is a collection of ready to use scripts which can used via k6 as described. | ||
[here](https://k6.io/docs/get-started/running-k6/). | ||
|
||
## How to test | ||
It's important to know how to compare the tests against each other and what those numbers mean. | ||
|
||
**Please note the following points:** | ||
* Only compare clouds if they run on the same host | ||
* Try to run the cloud on a different host than the k6 test-runner | ||
* Try to keep traffic on the hosts as low as possible while testing | ||
* Don't compare clouds that run in docker against non dockerized clouds | ||
* Docker for macs is slow on file operations compared to linux | ||
* Sometimes it's possible that one of the clouds will fail on some operations. Keep in mind that it's not valid to compare a test with failures against a test where all checks are green | ||
|
||
**Test setup at ownCloud:** | ||
|
||
At ownCloud, k6 is used to compare the performance of the products during development. It is very helpful to understand how changes to the codebase affect the performance, between releases, but also between single commits. | ||
|
||
The first test run, runs the tests on A which is testing a server on B and then B which is testing on A. | ||
We collect those metrics over time to get indicators of how the performance changes over time (version to version) and how the clouds perform in comparison to each other. | ||
|
||
**How to read the test results** | ||
## Package Index | ||
|
||
* Total time of execution | ||
* This is the total elapsed time of the test for all users and iterations | ||
* status | ||
* Red || Green is a quick overview of how many requests failed or not | ||
|
||
for a more detailed instruction how to read the results you should consider reading the k6 manual, | ||
specially the [end of test](https://k6.io/docs/results-output/end-of-test/) section. | ||
|
||
## Test Suits | ||
* koko | ||
* [010-login](packages/k6-tests/src/koko/010-login.md) | ||
* [020-navigate-file-tree](packages/k6-tests/src/koko/020-navigate-file-tree.md) | ||
* [040-upload-delete](packages/k6-tests/src/koko/040-upload-delete.md) | ||
* [050-upload-download](packages/k6-tests/src/koko/050-upload-download.md) | ||
* [060-create-rename-folder](packages/k6-tests/src/koko/060-create-rename-folder.md) | ||
* oc | ||
* [share-upload-rename](packages/k6-tests/src/oc/share-upload-rename.md) | ||
* sample | ||
* [kitchen-sink](packages/k6-tests/src/sample/kitchen-sink.md) | ||
* surf | ||
* [upload](packages/k6-tests/src/surf/upload.md) | ||
|
||
## Details | ||
Read more about [considerations](docs/considerations.md) of performance measurement. | ||
A precise description of what a test does and what the requirements are can be found in the respective test folder. | ||
|
||
## Dashboard | ||
To visualize the test results, tools such as InfluxDB + Grafana are needed. To explain how the results can be visualized would go beyond the scope of this document and is also not the purpose of cdPerf. All necessary steps and a precise description of what is necessary can be found [here](https://k6.io/docs/results-output/real-time/). | ||
* [k6-tdk](packages/k6-tdk): Test development kit, look here how to write tests. | ||
* [k6-tests](packages/k6-tests): Ready to use k6 tests, If you want to start testing right away, look here. | ||
* [eslint-config](packages/eslint-config): ESLint config shared across the packages, not public facing. | ||
* [tsconfig](packages/tsconfig): TypeScript config shared across the packages, not public facing. | ||
* [turbowatch](packages/turbowatch): Turbowatch config shared across the packages, not public facing. | ||
|
||
## Security | ||
|
||
If you find a security issue please contact [[email protected]](mailto:[email protected]) first | ||
|
||
## Contributing | ||
|
||
Fork -> Patch -> Push -> Pull Request | ||
|
||
## License | ||
|
||
Apache-2.0 | ||
|
||
## Dictonary | ||
|
||
* **oCis**: [ownCloud Infinite Scale](https://github.com/owncloud/ocis) | ||
* **k6-tdk**: k6 test development kit | ||
* **cdPerf**: cloud performance | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
layout: home | ||
|
||
title: cdPerf | ||
titleTemplate: ownCloud cloud testing toolbox | ||
|
||
hero: | ||
name: cdPerf | ||
text: ownCloud cloud testing toolbox | ||
tagline: Tools we use to test and measure the performance of different cloud systems. | ||
actions: | ||
- theme: brand | ||
text: Get Started | ||
link: /k6-tests/docs/ | ||
- theme: alt | ||
text: View on GitHub | ||
link: https://github.com/owncloud/cdperf | ||
|
||
features: | ||
- icon: 🚀 | ||
title: K6 test scripts | ||
details: Easy and simple to use k6 test scripts to test different cloud platforms. | ||
link: /k6-tests/docs/ | ||
- icon: 📝 | ||
title: K6 test development kit | ||
details: Simplifies the writing of tests and is compatible with several cloud platforms out of the box. | ||
link: https://github.com/owncloud/cdperf/tree/main/packages/k6-tdk | ||
--- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
{ | ||
"version": "2.0.0-rc.2", | ||
"version": "2.0.0-rc.5", | ||
"private": true, | ||
"homepage": "https://github.com/owncloud/cdperf", | ||
"license": "AGPL-3.0", | ||
|
@@ -9,20 +9,27 @@ | |
"changeset": "changeset", | ||
"changeset:publish": "changeset publish", | ||
"changeset:version": "changeset version", | ||
"clean": "turbo run clean --no-daemon --parallel && del-cli .pnpm-store node_modules", | ||
"clean": "turbo run clean --no-daemon --parallel", | ||
"dev": "ROARR_LOG=true turbo run dev --parallel --concurrency 64 --no-daemon | roarr", | ||
"docs:build": "vitepress build", | ||
"docs:dev": "vitepress dev", | ||
"docs:preview": "vitepress preview", | ||
"lint": "eslint package.json && syncpack list-mismatches && turbo run lint --no-daemon", | ||
"lint:fix": "eslint package.json --fix && syncpack fix-mismatches && turbo run lint:fix --no-daemon", | ||
"test": "turbo run test --no-daemon" | ||
}, | ||
"devDependencies": { | ||
"@algolia/client-search": "^4.17.2", | ||
"@changesets/cli": "^2.26.1", | ||
"@ownclouders/eslint-config": "workspace:*", | ||
"@roarr/cli": "^5.11.0", | ||
"del-cli": "^5.0.0", | ||
"syncpack": "^9.8.4", | ||
"turbo": "^1.9.1", | ||
"typescript": "^5.0.4" | ||
"@roarr/cli": "^5.12.3", | ||
"@types/lodash": "^4.14.195", | ||
"fast-glob": "^3.2.12", | ||
"lodash": "^4.17.21", | ||
"syncpack": "^10.6.1", | ||
"turbo": "^1.10.3", | ||
"typescript": "^5.1.3", | ||
"vitepress": "1.0.0-beta.3" | ||
}, | ||
"packageManager": "[email protected]", | ||
"engines": { | ||
|
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.