Difference between revisions of "Continuous Integration"
(27 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Admon/obsolete}} | ||
+ | |||
<big><big> Continuous Integration Project for NexJ Express Code</big></big> | <big><big> Continuous Integration Project for NexJ Express Code</big></big> | ||
{{NexJ_Express Index}} | {{NexJ_Express Index}} | ||
+ | [[category: NexJ_Past_Projects]] | ||
+ | ==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/> | ||
− | == | + | === Contributors === |
− | + | * [[Minooz/Projects | Minoo Ziaei]] | |
+ | * [[User:Gbatumbya|Grace Batumbya]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | == Current Status== |
− | + | <big><big>Project Completed</big></big> | |
− | + | <br/> | |
− | |||
− | |||
− | |||
− | |||
− | === | + | |
− | * | + | ==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 - [[Continuous_Integration/proposal | final version of proposal]] , [https://docs.google.com/document/d/17Fuj_9A7sBkzlbP0t0bOY3Qs1iiAhKAvfNTuUMnHUcg/edit?hl=en_US 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. [[Continuous_Integration/script | 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 | ||
+ | ** [http://iran.proximity.on.ca:8080/ 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. | ||
+ | * [http://mercurial.nexj.com/express.cgi/ NexJ Express Repository in use] | ||
==Challenges== | ==Challenges== | ||
− | * | + | * [[Continuous_Integration/challenges | List of the challenges]] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ==Resources== | |
− | + | *[[Continuous_Integration/Resources | List of Resources]] | |
− | + | : | |
− | : | + | : |
− | : |
Latest revision as of 19:29, 26 January 2014
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.
Contributors
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