X-Git-Url: https://gerrit.onap.org/r/gitweb?p=ci-management.git;a=blobdiff_plain;f=Sandbox_Setup.md;h=890410550b7842f08b93c8e645a69d9c71c95bf9;hp=9afb39d76ae2e34cc04619a3e4a8ba2d3b952c39;hb=refs%2Fheads%2Fmaster;hpb=7a7cf459659bf31d7ec8d7d9162eaf84be34126a diff --git a/Sandbox_Setup.md b/Sandbox_Setup.md index 9afb39d76..f7101c674 100644 --- a/Sandbox_Setup.md +++ b/Sandbox_Setup.md @@ -1,4 +1,4 @@ -## ONAP Jenkins Sandbox Process: +# ONAP Jenkins Sandbox Process ONAP Jenkins Sandbox provides you Jenkins Job testing/experimentation environment that can be used before pushing job templates to the production @@ -6,7 +6,7 @@ that can be used before pushing job templates to the production It is configured similar to the ONAP [ci-management] production instance; however, it cannot publish artifacts or vote in Gerrit. Be aware that this is a -test environment, and as such there a limited allotment of minions to test on +test environment, and as such there is a limited allotment of minions to test on before pushing code to the ONAP repos. Keep the following points in mind prior to beginning work on ONAP Jenkins Sandbox environment: @@ -19,27 +19,46 @@ environment: these VMs directly. Before you proceed further, ensure you have a Linux Foundation ID (LFID), which is -required to access Gerrit & Jenkins. Also, to get an access to Sandbox environment -please send email to helpdesk@onap.org (LF helpdesk team) +required to access Gerrit & Jenkins. Also, to extend your permissions for uploading +Jenkins configurations to Sandbox environment, you must raise a ticket to +[Linux Foundation Help Center](https://support.linuxfoundation.org) + +- [ONAP Jenkins Sandbox Process](#onap-jenkins-sandbox-process) + - [Setup](#setup) + - [Install JJB on your machine](#install-jjb-on-your-machine) + - [Make a copy of the example JJB config file (in the ci-management/ directory)](#make-a-copy-of-the-example-jjb-config-file-in-the-ci-management-directory) + - [Retrieve username and API token](#retrieve-username-and-api-token) + - [Working with jobs](#working-with-jobs) + - [Test a Job](#test-a-job) + - [Update a job](#update-a-job) + - [Trigger jobs from Jenkins Sandbox](#trigger-jobs-from-jenkins-sandbox) + - [Delete a Job](#delete-a-job) + - [Modify an Existing Job](#modify-an-existing-job) + - [More online documentation](#more-online-documentation) + +## Setup To download **ci-management**, execute the following command to clone the -**ci-managment** repository. +**ci-management** repository. -`git clone ssh://@gerrit.onap.org:29418/ci-management --recursive && scp -p -P 29418 \ -@gerrit.onap.org:hooks/commit-msg ci-management/.git/hooks/` +```sh +git clone https://gerrit.onap.org/r/ci-management && (cd ci-management && curl -Lo \ +$(git rev-parse --git-dir)/hooks/commit-msg https://gerrit.onap.org/r/tools/hooks/commit-msg; \ +chmod +x $(git rev-parse --git-dir)/hooks/commit-msg) +``` Make sure to sync global-jjb submodule using: `git submodule update --init` -Once you successfully clone the repository, next step is to install JJB +Once you successfully cloned the repository, next step is to install JJB (Jenkins Job Builder) in order to experiment with Jenkins jobs. -### Execute the following commands to install JJB on your machine: +### Install JJB on your machine -``` +```sh cd ci-management -sudo apt-get install python-virtualenv +pip install virtualenv virtualenv onap_sandbox source onap_sandbox/bin/activate pip install jenkins-job-builder @@ -47,43 +66,55 @@ jenkins-jobs --version jenkins-jobs test --recursive jjb/ ``` -### Make a copy of the example JJB config file (in the builder/ directory) +### Make a copy of the example JJB config file (in the ci-management/ directory) -Backup the jenkins.ini.example to jenkins.ini +Place a copy of the `jenkins.ini.example` file as `jenkins.ini` in your home folder: -`cp jenkins.ini.example ~/.config/jenkins_jobs/jenkins_jobs.ini` +```sh +mkdir -p ~/.config/jenkins_jobs +cp jenkins.ini.example ~/.config/jenkins_jobs/jenkins_jobs.ini +``` -After copying the jenkins.ini.example, modify `jenkins.ini` with your -**Jenkins LFID username**, **API token** and **ONAP jenkins sandbox URL** +Modify the resulting `~/.config/jenkins_jobs/jenkins_jobs.ini` with your +**Jenkins LFID username** and **API token**. Make sure that your account has the necessary permissions (request them via the [LFN help desk](https://jira.linuxfoundation.org/plugins/servlet/desk/portal/2/create/35) if not)! -``` +```ini [job_builder] ignore_cache=True keep_descriptions=False -include_path=.:scripts:~/git/ +include_path=. recursive=True +retain_anchors=True [jenkins] user=jwagantall password= url=https://jenkins.onap.org/sandbox -This is deprecated, use job_builder section instead -ignore_cache=True +query_plugins_info=False ``` -### How to retrieve API token? + +### Retrieve username and API token + Login to the [Jenkins Sandbox](https://jenkins.onap.org/sandbox/), go to your user -page by clicking on your username. Click **Configure** and then click **Show API Token**. +page by clicking on your username - `Jenkins User ID` on this page is your Jenkins +Sandbox username. Click **Configure** and then click **Add new Token**. +After that specify a token name (optional) and click on **Generate** to generate and show +new token. Please note down your token and store it securely. + +## Working with jobs -To work on existing jobs or create new jobs, navigate to the `/jjb` directory where you -will find all job templates for the project. Follow the below commands to test, +To work on existing jobs or create new jobs, navigate to the `ci-management/jjb/` directory where you +will find all job templates for the project. Follow the below commands to test, update or delete jobs in your sandbox environment. -## To Test a Job: +### Test a Job After you modify or create jobs in the above environment, it's good practice -to test the job in sandbox environment before you submit this job to production CI environment. +to test the job in the sandbox environment before you submit this job to the production CI environment. -`jenkins-jobs test jjb/ ` +```sh +jenkins-jobs test jjb/ +``` **Example:** `jenkins-jobs test jjb/ sdc-master-verify-java` @@ -96,25 +127,28 @@ specified JJB job name. Execute the following command to pipe-out to a directory: -`jenkins-jobs test jjb/ -o ` +```sh +jenkins-jobs test jjb/ -o +``` The output directory will contain files with the XML configurations. -## To Update a job: +### Update a job -Ensure you’ve configured your `jenkins.ini` and verified it by -outputting valid XML descriptions of Jenkins jobs. Upon successful -verification, execute the following command to update the job to the -Jenkins sandbox. +Ensure you’ve configured your `jenkins_jobs.ini` and verified the changes by +outputting valid XML descriptions of the relevant Jenkins jobs. Upon successful +verification, execute the following command to update the job to the Jenkins sandbox. -`jenkins-jobs update jjb/ ` +```sh +jenkins-jobs update jjb/ +``` **Example:** `jenkins-jobs update jjb/ sdc-master-verify-java` -## Trigger jobs from Jenkins Sandbox: +### Trigger jobs from Jenkins Sandbox Once you push the Jenkins job configuration to the ONAP Sandbox environment, -run the job from Jenkins Sandbox webUI. Follow the below process to trigger the build: +run the job from the Jenkins Sandbox webUI. Follow the below process to trigger the build: Step 1: Login into the [Jenkins Sandbox WebUI](https://jenkins.onap.org/sandbox/) @@ -128,26 +162,28 @@ you don't find many like in production CI environment. Once the job is triggered, click on the build number to view the job details and the console output. -## To Delete a Job: +### Delete a Job Execute the following command to Delete a job from Sandbox: -`jenkins-jobs delete jjb/ ` +```sh +jenkins-jobs delete jjb/ +``` **Example:** `jenkins-jobs delete jjb/ sdc-master-verify-java` The above command would delete the `sdc-master-verify-java` job. -## Modify an Existing Job: +### Modify an Existing Job In the ONAP Jenkins sandbox, you can directly edit or modify the job configuration by selecting the job name and clicking on the **Configure** button. Then, click the **Apply** and **Save** buttons to save the job. However, it is recommended to simply modify the job in your terminal and then follow -the previously described steps in **To Test a Job** and **To Update a Job** to perform +the previously described steps in [Test a Job](#test-a-job) and [Update a Job](#update-a-job) to perform your modifications. -## More online documentation: +## More online documentation https://docs.openstack.org/infra/jenkins-job-builder/