A minimal continuous integration server for repositories hosted on GitHub.
:warning: QED is just getting started and is only barely useful. It's still needs lots of features and is certainly full of bugs. :warning:
QED accepts post-receive hooks from a GitHub repository and then clones and builds that repository. When finished, it uses the GitHub API to update the commit status.
Requirements
git.exe
in the %PATH%
Steps
msbuild.exe
in the repository's root directory../bin/Debug/qed.exe
from the repository's root directory.http://localhost:1754
.QED requires a JSON file named build.config
in its working directory. The format of this file is:
[
{ "owner": "the-repository-owner",
"name": "the-repository-name",
"token": "an-oauth-token-with-repo-scope",
"command": "the-command-to-run-e.g.-powershell.exe",
"commandArguments": "the-command-arguments-e.g.-cibuild.ps1"
},
// additional build configurations
]
Add a post-receive hook with the event type push
(the default) and a URL of http://your-host/events/push
.
If you are adding a new feature or fixing a QED bug, you might need to fake a post-receive hook to start a build locally. Here's a PowerShell snippet to fake a push event:
$pushPayload = 'payload='+[System.Uri]::EscapeDataString('{
"ref": "refs/heads/{branch}",
"after": "{sha}",
"repository": {
"name": "{name}",
"url": "https://github.com/{owner}/{name}",
"owner": {
"name": "{owner}"
}
}
}')
Invoke-WebRequest -Headers @{"X-GitHub-Event"="push"} -Method Post -Body $pushPayload http://localhost:1754/events/push