Skip to content

Tradingangel/qed

 
 

Repository files navigation

QED CI

A minimal continuous integration server for repositories hosted on GitHub.

⚠️ QED is just getting started and is only barely useful. It's still needs lots of features and is certainly full of bugs. ⚠️

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.

Server Installation

Requirements

  • .NET 4.5
  • git.exe in the %PATH%

Steps

  1. Clone the source code.
  2. Run msbuild.exe in the repository's root directory.
  3. Modify the sample build configuration in the repository's root directory.
  4. Configure the GitHub repository.
  5. Run ./bin/Debug/qed.exe from the repository's root directory.
  6. Open a browser to http://localhost:1754.

Build Configuration

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
]

GitHub Repository Configuration

Add a post-receive hook with the event type push (the default) and a URL of http://your-host/events/push.

Testing Post-Receive Hooks

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

About

A minimal continuous integration server running on .NET for repositories hosted on GitHub

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 94.6%
  • F# 5.4%