paritytech / bench-bot

ISC License
9 stars 19 forks source link

bench-bot

:warning: bench-bot has been deprecated in favor of https://github.com/paritytech/command-bot, which has a different execution model. A detailed comparison is provided in https://github.com/paritytech/pipeline-scripts/issues/54.

Although development will stop in this repository, the open-source community might continue in forks such as https://github.com/AcalaNetwork/bench-bot and https://github.com/PureStake/bench-bot.

How to use

The bot runs commands in response to pull request comments (example). The form is:

/bench [action] [...args]

Environment variables and Github settings have to properly configured upfront for this interaction to work.

Configuration

Create a .env file in the root with the following:

APP_ID=<App id from Github App Settings>
BASE_BRANCH=<the default branch for merging into the PRs, e.g. master>
CLIENT_ID=<Client ID from Github App Settings>
CLIENT_SECRET=<Client ID from Github App Settings>
PRIVATE_KEY_PATH=<Path the the private key of the github app>
WEBHOOK_SECRET=<Webhook secret from Github App Settings>
WEBHOOK_PROXY_URL=<optional; webhook proxy for development>

During development it's recommended to use smee for WEBHOOK_PROXY_URL because it enables testing your bot's functionality locally, without having to SSH into the dedicated machine.

Linting and formatting

The commands yarn run format and yarn run lint are available for ensuring style consistency on this project's code.

Running

Locally

yarn && yarn start

Dedicated machine

Note: Before disrupting the production deployment, it's first recommended to check if some benchmark is running through pgrep -a cargo .

The run script is used to manage the application. Use run help for documentation about its options.

run bootstrap will take care of creating and installing everything from scratch. After install, you'll also need to set up environment variables which optionally can be done through a .env file in the bot's installation path.

Bot commands

Logs

See https://gitlab.parity.io/groups/parity/opstooling/-/wikis

Required Github settings

Permissions

Event subscriptions