RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Before configuring scripts, ensure that device models are mapped against corresponding device category in Automatics Orchestration.
Please follow the below steps to deploy automatics core to Artifact repositories from Jenkins job
Jenkins is used by Automatics for following activities.
Automatics jenkins setup documentation can be found in the page : Automatics Jenkins Setup
Table of Contents
Generic Overview
What is Jenkins Pipeline?
In Jenkins, a pipeline is a group of events or jobs which are interlinked with one another in a sequence.
In simple words, Jenkins Pipeline is a combination of plugins that supports the integration and implementation of continuous delivery pipelines using Jenkins. A pipeline has an extensible automation server for creating simple or complex delivery pipelines "as code," via pipeline DSL (Domain-specific Language).
What is Jenkins File?
Jenkins pipelines can be defined using a text file called Jenkins File. You can implement pipeline as code using Jenkins File, and this can be defined by using a domain specific language (DSL). With Jenkins File, you can write the steps needed for running a Jenkins pipeline.
The benefits of using Jenkins File are:
Jenkins File can be defined by either Web UI or with a Jenkins File.
Declarative versus Scripted pipeline syntax:
There are two types of syntax used for defining your Jenkins File.
Declarative:
Declarative pipeline syntax offers an easy way to create pipelines. It contains a predefined hierarchy to create Jenkins pipelines. It gives you the ability to control all aspects of a pipeline execution in a simple, straight-forward manner.
Scripted:
Scripted Jenkins pipeline runs on the Jenkins master with the help of a lightweight executor. It uses very few resources to translate the pipeline into atomic commands. Both declarative and scripted syntax are different from each other and are defined totally differently.
Why use Jenkins pipeline?
Jenkins is an open continuous integration server which has the ability to support the automation of software development processes. You can create multiple automation jobs with the help of use cases, and run them as a Jenkins pipeline.
Here are the reasons why you use should use Jenkins pipeline:
Jenkins pipeline concept
Term | Description |
Pipeline | The pipeline is a set of instructions given in the form of code for continuous delivery and consists of instructions needed for the entire build process. With pipeline, you can build, test, and deliver the application. |
Node | The machine on which Jenkins runs is called a node. A node block is mainly used in scripted pipeline syntax. |
Stage | A stage block contains a series of steps in a pipeline. That is, the build, test, and deploy processes all come together in a stage. Generally, a stage block is used to visualize the Jenkins pipeline process. |
Step | A step is nothing but a single task that executes a specific process at a defined time. A pipeline involves a series of steps. |
<Jenkins URL >
URL: https://automatics-jenkins.rdkcentral.com:8443/
Click on the New Item and Create a job name.
Based on the jobs we need to select the type of projects. Once project created it will be listed in job list
Created a generic pipeline. for all the utils and Parser. URL give below:
URL: https://rdkauto14.ccp.xcal.tv:8443/job/RDKM_CODE_DEPLOY_AND_3.0_API_Parser/.
User can find all the results in stage view of all utils and parser for kind reference.
Let's now create a pipeline job using the below Groovy script:
Click on New Item in the Jenkins dashboard.
Set the “Job Name” as parent Job
Select the “Job Type” as Pipeline project.
Add the Groovy script as explained above and save the job.
Groovy script for RDKM_CODE_DEPLOY_AND_3.0_API_Parser
Steps to create a separate job.
Inside the Repository URL mention the gerrit link of the specific project.
In Branch specifier user needs to be mention the correct branch
Root POM? should be pom.xml
Following command should be entered inside Goals and options field.
clean package -DskipTests exec:java -Dautomatics.properties.file="https://rdk-automatics01.stb.r53.xcal.tv:8443/AutomaticsProps/automatics.properties"
Once user entered all the details successfully. Job creation done successfully.
Dummy job creation
Now, it’s time to give your job something to do. Click on the Build tab on the configure page.
This will take you to the build section. Click on the Add build step menu and select Execute shell.
We’re going to use a one-line shell step for this job.
Enter the single line of shell code and click Save.
Click Build Now. The job will run and complete almost immediately. Next, click the build number to see your results.
Next, click on Console Output, and you’ll see the shell message.
Your job is ready for scheduling!
Head back to the job configuration and click the Build Triggers tab.
Now, check the Build periodically box in the Build Triggers section.
This will open the scheduling text area.
Next, let’s set the job to run every five minutes.
Enter H/5 * * * * into the box, click Save, and reopen the configuration. Jenkins will show you when the job will run.
Save the job again and wait a few minutes. Depending on the value Jenkins selects for H, the job will run after a few minutes.
Here is a screenshot of a couple of builds on our system. You can see that the first build corresponds to the time shown above on the configure page.
The timestamps show that you’ve scheduled a job to run every five minutes.
Wait for a bit longer and you will see that it continues to run every five minutes.