A GitHub App built with Probot
# Install dependencies
npm install
# Build
npm buildCreate 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.pemWEBHOOK_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-botFor local development with webhook forwarding via smee.io:
# Start development server with smee.io
npm run devSee 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 testThe bot works by:
- Detecting PRs: When a pull request is opened, the bot is triggered
- Adding Workflow: It adds a temporary
daml-tests-bot.ymlworkflow 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 testexecution