A GitHub App built with Probot
# Install dependencies
npm install
# Build
npm build
Create a .env
file in the root directory with the following variables:
WEBHOOK_PROXY_URL=https://your-webhook-proxy-url.com
WEBHOOK_SECRET=your-webhook-secret
APP_ID=your-github-app-id
PRIVATE_KEY_PATH=path/to/your/private-key.pem
WEBHOOK_PROXY_URL
: The URL for the webhook proxy (used for local development)WEBHOOK_SECRET
: The secret used to verify webhook payloadsAPP_ID
: Your GitHub App IDPRIVATE_KEY_PATH
: Path to your GitHub App's private key file
# 1. Build container
docker build -t daml-ci-bot .
# 2. Start container
docker run -e APP_ID=<app-id> -e PRIVATE_KEY=<pem-value> daml-ci-bot
For local development with webhook forwarding via smee.io:
# Start development server with smee.io
npm run dev
See DEVELOPMENT.md for detailed setup instructions.
# Run tests once
npm run test:run
# Run tests with coverage
npm run test:coverage
# Run tests in watch mode
npm test
The bot works by:
- Detecting PRs: When a pull request is opened, the bot is triggered
- Adding Workflow: It adds a temporary
daml-tests-bot.yml
workflow file to the PR branch - Running Tests: It dispatches the workflow to run Daml tests
- Monitoring: It polls for completion and reports results
- Cleanup: It removes the temporary workflow file
The workflow template is stored in templates/workflows/daml-tests.yml
and includes:
- Java (Temurin 11) setup
- Daml SDK installation
daml test
execution