Difference between revisions of "Continuous Integration"
(→Phase 2: Scripting (Done)) |
|||
(15 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}} | ||
Line 4: | Line 6: | ||
==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. | + | 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/> |
− | == Current Status | + | |
+ | === Contributors === | ||
+ | * [[Minooz/Projects | Minoo Ziaei]] | ||
+ | * [[User:Gbatumbya|Grace Batumbya]] | ||
+ | |||
+ | |||
+ | == Current Status== | ||
+ | <big><big>Project Completed</big></big> | ||
<br/> | <br/> | ||
+ | |||
==Project Phases== | ==Project Phases== | ||
Line 12: | Line 22: | ||
* 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/17Fuj_9A7sBkzlbP0t0bOY3Qs1iiAhKAvfNTuUMnHUcg/edit?hl=en_US Google Doc ] |
− | |||
===Phase 2: Creating Similar Environment (Done) === | ===Phase 2: Creating Similar Environment (Done) === | ||
* Internal Repository | * Internal Repository | ||
** Creating a Mercurial repository and adding some changes to it to grow the history of it. | ** Creating a Mercurial repository and adding some changes to it to grow the history of it. | ||
− | |||
* Controller | * Controller | ||
** This will be containing temporary repositories as the result of scripting. | ** This will be containing temporary repositories as the result of scripting. | ||
− | |||
* External Repository | * External Repository | ||
** Creating another Mercurial repository using 'hg' commands from the latest 'change-set' of Internal Repository. | ** Creating another Mercurial repository using 'hg' commands from the latest 'change-set' of Internal Repository. | ||
− | ===Phase | + | ===Phase 3: Scripting (Done) === |
* Ant | * Ant | ||
** Doesn't support some of non-regular Mercurial commands that we need to play with ''change-sets'' | ** Doesn't support some of non-regular Mercurial commands that we need to play with ''change-sets'' | ||
− | |||
* Bash | * Bash | ||
** Supports everything we need for the project. [[Continuous_Integration/script | script]] | ** Supports everything we need for the project. [[Continuous_Integration/script | script]] | ||
− | |||
===Phase 4: Running the script on CI system (Done) === | ===Phase 4: Running the script on CI system (Done) === | ||
Line 39: | Line 44: | ||
** Runs different types of scripts: ''bash'', ''ant'', ''batch'' | ** Runs different types of scripts: ''bash'', ''ant'', ''batch'' | ||
** Can be scheduled to run automatically or manually | ** Can be scheduled to run automatically or manually | ||
− | + | ** [http://iran.proximity.on.ca:8080/ Test Project] | |
===Phase 5: Code Review (Done)=== | ===Phase 5: Code Review (Done)=== | ||
* Execute the script on one of Nexj computers. | * 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== | |
− | + | * [[Continuous_Integration/challenges | List of the challenges]] | |
− | |||
− | |||
− | |||
==Resources== | ==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