Giter Club home page Giter Club logo

leeroy's Introduction

Leeroy

Leeroy is a Windows service that monitors GitHub repositories for changes; when a new commit is detected, it starts a Jenkins build.

Build Repositories

Leeroy is designed to work with a “build repository”—a git repository that contains a text file with the current build number, and one or more submodules.

Leeroy monitors a specific branch in each submodule’s repository. When a new commit is pushed to that branch, Leeroy creates a commit in the build repository that updates that submodule; it also increments the current build number. Once the commit it pushed, it makes a HTTP request to Jenkins (or any compatible CI server) to start a build.

GitHub API

Checking for changes and creating new commits is done through the GitHub API, so Leeroy can only work with repositories hosted at github.com or at GitHub Enterprise.

How To Install

  1. Clone the Leeroy repository.
  2. Build the code.
  3. Copy the Release build output to a folder on your server.
  4. Edit Leeroy.exe.config in that folder and ensure the credentials and logging settings are correct.
  5. Open an Administrative Command Prompt in that folder.
  6. Run C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe Leeroy.exe
  7. Run sc start Leeroy to start the service.

How To Configure

Leeroy loads its configuration files from a GitHub repository (and automatically reloads them when the master branch in that repository is updated). The configuration files are stored in the following JSON format:

{
    "buildUrl": "http://SERVER/job/JENKINS-JOB-NAME/build",
    "buildUrls": [ optional array of URLs, if a commit should start
        multiple builds ],
    "repoUrl": "git@SERVER:Build/BUILDREPO.git",
    "branch": "master", /* or branch to build */
    "submoduleBranches": { optional hash, which maps submodule
        paths to the branch to track in that submodule; the default is to
        track the branch given by 'branch' above
    }
}

leeroy's People

Contributors

bgrainger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

leeroy's Issues

Email config author on error

If there is an error in a Leeroy config file, we should use git history to get the email address of the most recent author, then email them the error message directly.

Warn if multiple projects have the same build repo

If two configuration files specify the same branch in the same build repo, then they will conflict. Best case, they will be trying to push the same change to the build repo simultaneously (and one will fail). Worst case, they'll keep pushing conflicting changes in an endless loop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.