Difference between revisions of "Continuous Integration"
Line 5: | Line 5: | ||
==Project goal== | ==Project goal== | ||
Currently, NexJ has a Mercurial Repository (Internal) in which, the NexJ Express Server (Core) code is maintained with all its histories. NexJ is planning to share a Core Repository with the Open Source Community by creating a Repository (External) that will be kept in sync with the Internal Repository.<br/> | Currently, NexJ has a Mercurial Repository (Internal) in which, the NexJ Express Server (Core) code is maintained with all its histories. NexJ is planning to share a Core Repository with the Open Source Community by creating a Repository (External) that will be kept in sync with the Internal Repository.<br/> | ||
− | |||
Line 17: | Line 16: | ||
* Get requirements from NexJ | * Get requirements from NexJ | ||
* Incorporate requirements from NexJ into Design of algorithm for syncing repositories | * Incorporate requirements from NexJ into Design of algorithm for syncing repositories | ||
− | * Provide the proposal for review and approved - [[Continuous_Integration/proposal | final version of proposal]] | + | * Provide the proposal for review and approved - [[Continuous_Integration/proposal | final version of proposal]] , [https://docs.google.com/document/d/1SDqCFd7k3Q39D9xVsQ-cDPHQHgNOSbarrIBXhML-CoU/edit?hl=en&authkey=CJav5NYN Google Doc ] |
===Phase 2: Creating Similar Environment (Done) === | ===Phase 2: Creating Similar Environment (Done) === |
Revision as of 16:26, 2 May 2011
Continuous Integration Project for NexJ Express Code
Project goal
Currently, NexJ has a Mercurial Repository (Internal) in which, the NexJ Express Server (Core) code is maintained with all its histories. NexJ is planning to share a Core Repository with the Open Source Community by creating a Repository (External) that will be kept in sync with the Internal Repository.
Current Status
Project Completed
Project Phases
Phase 1: Design Proposal (Done)
- Get requirements from NexJ
- Incorporate requirements from NexJ into Design of algorithm for syncing repositories
- Provide the proposal for review and approved - final version of proposal , Google Doc
Phase 2: Creating Similar Environment (Done)
- Internal Repository
- Creating a Mercurial repository and adding some changes to it to grow the history of it.
- Controller
- This will be containing temporary repositories as the result of scripting.
- External Repository
- Creating another Mercurial repository using 'hg' commands from the latest 'change-set' of Internal Repository.
Phase 3: Scripting (Done)
- Ant
- Doesn't support some of non-regular Mercurial commands that we need to play with change-sets
- Bash
- Supports everything we need for the project. script
Phase 4: Running the script on CI system (Done)
- Buildbot
- Hudson
- Simple to setup and configure.
- Runs different types of scripts: bash, ant, batch
- Can be scheduled to run automatically or manually
- Test Project
Phase 5: Code Review (Done)
- Execute the script on one of Nexj computers.
Phase 6: Make Changes as per Code Review (Done)
- Define paths based on Nexj's requirements
- Modify the script to be able to retrieve change-sets of a remote repository
- Create specific error message for each problem during running the script
Phase 7: Code Review (Done)
- Send code for review.
- NexJ Express Repository in use