reposted from jigyasagrover.wordpress.com/ci-automated-build-for-your-pharo-application
This post aims to put forward the basics of Build Automation
and also brief the steps required to put up a Pharo
application on Continuous Integration, Inria
which is a platform for Scheduled Automated Build.
For simplicity, Build automation is the act of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities including things like:
compiling computer source code into binary code
packaging binary code
running automated tests
deploying to production systems
creating documentation and/or release notes
Various types of automation are as:
- On-Demand automation such as a user running a script at the command line
- Scheduled automation such as a continuous integration server running a nightly build
- Triggered automation such as a continuous integration server running a build on every commit to a version control system.
In recent years, build management tools have provided relief when it comes to automating the build process.
The dominant benefits of continuous integration include:
Improvement of product quality
Acceleration of compile and link processing
Elimination of redundant tasks
Minimization of ‘bad builds’
Have history of builds and releases in order to investigate issues
Save time and money – because of above listed reasons.
A build system should fulfill certain requirements.
- Frequent or overnight builds to catch problems early.
- Support for Source Code Dependency Management
- Incremental build processing
- Reporting that traces source to binary matching
- Build acceleration
- Extraction and reporting on build compile and link usage
- Generate release notes and other documentation such as help pages
- Build status reporting
- Test pass or fail reporting
- Summary of the features added/modified/deleted with each new build
Considering the above mentioned advantages of automated build, the below enlisted steps will help to put up your own Pharo application hosted on github on the CI server for continuous integration/scheduled build.
1. Log on to Continuous Integration, Inria website (https://ci.inria.fr/).
2. Click on ‘Sign Up‘ at the top-right corner, enter the required details and register for CI.
3. From the ‘Dashboard‘ option located at the top most of the screen click on ‘Join an existing project‘ blue button as shown .
4. Search ‘pharo-contribution‘ in the enlisted public projects and click on ‘Join‘
5. On clicking the ‘Join‘ button, a message stating: “Request to join the project ‘pharo-contribution’ sent.” appears.
6. It might take a day or two for the request approval mail to deliver at your registered Email ID.
The E-Mail content is as follows:
Your request to join pharo-contribution has been accepted
Hi _ _ _,
Your request to join the project pharo-contribution has been accepted !
7. Click on ‘My Account‘ option and under ‘My Projects‘ check the status of pharo-contribution project. It should state ‘member‘.
8. Now, visit the LINK: https://ci.inria.fr/pharo-contribution/job/JobTemplate/ to create a ‘New Job‘
9. Read all the steps mentioned carefully. After going through all the points, click on the ‘New Job‘ mentioned in point 2 on the Project Job Template web page.
10. Enter the ‘Project Name‘ in the ‘Item Name: ‘ box and choose ‘Copy from existing item‘ option and fill ‘JobTemplate‘
11. After clicking OK, You will be directed to your project configuration.
12. Fill in the description of the project in the desired box.
13. Fill int the configuration details of your project like:
* Maximum number of builds
* Link to GitHub Project
* Source Code Manager
* Build Triggers
* Schedule of build (@hourly, @daily, @weekly, @fortnightly, @monthly, @yearly etc.)
* Configuration Matrix (User Defined Axis: Name && Version Values- stable, development etc.)
* Build environment options
* Post-build actions
* Report regressed tests
14. The main task is to carefully write the commands in the ‘Execute Shell‘
The default commands are as:
15. After saving and applying the changes, the application is all set for automated build.
16. Each build’s ‘Console Output‘ can be used to analyse the steps and highlight the weak areas of the project.
For instance: The below output is of a project whose stable version build was successful.
TIP: Keep a regular tab on the build results and analyze each line of the Console Output with utmost care.
Hope this post was able to help you start with the automation build process of Pharo Application.
Do like if it was worth a read !
Post queries/suggestions as comments 🙂 Looking forward to them.
UPCOMING: Next, I plan to share experience of putting up my Pharo application searchQuick on CI Inria for automated build. I intend to detail about the various configuration settings applied along with the Execute Shell commands utilized for a GitHub project 🙂
Introduction Accredits: Wikipedia
Resources: Build Automation and Continuous Integration .