Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

This section contains the guide to Jenkins.



General information - Jenkins:

Why do we need Jenkins?

To get approval of continuous integration continuous delivery/deployment (CICD) by the Akraino committee. i.e., By pushing the logs to Nexus Akraino Repository.

Who should push the logs? / Where should the logs be pushed?

Prerequisites: 

Access to Nexus Akraino Repository. (How to get access of Nexus Akraino Repository?)

Jenkins for private lab:

Once you have completed the prerequisites. Now you are ready to:


Note: In this guide, we use docker container for Jenkins installation. 

Setup Jenkins locally: 

To write.

Install Jenkins using command:

docker run --name JENKINS-CONTAINER-NAME --rm --detach --privileged --network jenkins --network-alias docker --volume /jenkins:/var/jenkins_home --publish 2376:2376 -p 80:8080 -p 50000:50000 mehmoodasif/jenkins 


Make your .netrc file exists in the root folder.

Push logs to Nexus Akraino Repository:

To push the logs using, you'll have to:

  • write a script to push logs
  • create/configure a job on your jenkins
  • validate the logs being pushed on Nexus Akraino Repository

Write a script to push logs: 

Create an .sh file. We named it as push-logs.sh.

An example (sh-script) to push logs to Nexus Akraino Repository
NEXUS_URL=https://nexus.akraino.org
SILO=<silo name provided above>
JENKINS_HOSTNAME=<hostname/IP of your Jenkins host>

# JOB_NAME and BUILD_NUMBER should be set by Jenkins 
BUILD_URL="${JENKINS_HOSTNAME}/job/${JOB_NAME}/${BUILD_NUMBER}/"

NEXUS_PATH="${SILO}/job/${JOB_NAME}/${BUILD_NUMBER}"

lftools deploy logs $NEXUS_URL $NEXUS_PATH $BUILD_URL
 
echo "Logs uploaded to $NEXUS_URL/content/sites/logs/$NEXUS_PATH"

Create a job on your Jenkins: 

Follow these steps:

  • Log into to Jenkins
  • Through the Dashboard, go to New Item
  • (in our case, we used push-logs)
  • Select the Pipeline options shown
  • Click OK
  • In the General (tab), under the Pipeline section, Pipeline script option must be selected. And paste the below provided groovy script into the Script area. The script is as follows:
    Below line change-directory to where your script exists.

    An example (groovy-script) to push logs to Nexus Akraino Repository
    pipeline { 
        agent none 
        
        stages { 
            stage ("push-logs-nexus") { 
                agent any 
                steps { 
                    sh "echo 'Start of job (push-logs)'" 
                    sh "pwd" 
                    dir("../scripts/") { 
                        sh "pwd" 
                        sh "./push-logs.sh" 
                    } 
                    sh "pwd" 
                    sh "echo 'End of job (push-logs)'" 
                } 
            } 
        } 
    } 
  • Now you have to configure the job to load/run the script to push logs (wrote in the previous step). An example on how to is provided below:

Validate the logs being pushed on Nexus Akraino Repository:

Visit the associated repository to your blueprint. The logs must be there. In our case, the link is:




  • No labels