Merge "Chore: Move to ubuntu2004-docker"
[ci-management.git] / Sandbox_Setup.md
old mode 100755 (executable)
new mode 100644 (file)
index 2d8758f..8904105
@@ -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,14 +19,20 @@ 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)
 
 To download **ci-management**, execute the following command to clone the
-**ci-managment** repository.
+**ci-management** repository.
 
-`git clone ssh://<LFID>@gerrit.onap.org:29418/ci-management --recursive && scp -p -P 29418 \
-<LFID>@gerrit.onap.org:hooks/commit-msg ci-management/.git/hooks/`
+`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
 (Jenkins Job Builder) in order to experiment with Jenkins jobs.
@@ -35,7 +41,7 @@ Once you successfully clone the repository, next step is to install JJB
 
 ```
 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
@@ -43,34 +49,38 @@ 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
 
-`cp jenkins.ini.example jenkins.ini`
+`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**
+**Jenkins LFID username** and **API token**
 
 ```
 [job_builder]
 ignore_cache=True
 keep_descriptions=False
-include_path=.:scripts:~/git/
+include_path=.
 recursive=True
+retain_anchors=True
 
 [jenkins]
 user=jwagantall <Provide your Jenkins Sandbox username>
 password= <Refer below steps to get API token>
 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?
+### How to 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.
 
-To work on existing jobs or create new jobs, navigate to the `/jjb` directory where you
+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.
 
@@ -79,9 +89,9 @@ update or delete jobs in your sandbox environment.
 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.
 
-`jenkins-jobs --conf jenkins.ini test jjb/ <job-name>`
+`jenkins-jobs test jjb/ <job-name>`
 
-**Example:** `jenkins-jobs --conf jenkins.ini test jjb/ sdc-master-verify-java`
+**Example:** `jenkins-jobs test jjb/ sdc-master-verify-java`
 
 If the job you’d like to test is a template with variables in its name, it must be
 manually expanded before use. For example, the commonly used template `sdc-{stream}-verify-java`
@@ -92,20 +102,19 @@ specified JJB job name.
 
 Execute the following command to pipe-out to a directory:
 
-`jenkins-jobs --conf jenkins.ini test jjb/ <job-name> -o <directoryname>`
+`jenkins-jobs test jjb/ <job-name> -o <directoryname>`
 
 The output directory will contain files with the XML configurations.
 
 ## To 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 --conf jenkins.ini update jjb/ <job-name>`
+`jenkins-jobs update jjb/ <job-name>`
 
-**Example:** `jenkins-jobs --conf jenkins.ini update jjb/ sdc-master-verify-java`
+**Example:** `jenkins-jobs update jjb/ sdc-master-verify-java`
 
 ## Trigger jobs from Jenkins Sandbox:
 
@@ -128,9 +137,9 @@ details and the console output.
 
 Execute the following command to Delete a job from Sandbox:
 
-`jenkins-jobs --conf jenkins.ini delete jjb/ <job-name>`
+`jenkins-jobs delete jjb/ <job-name>`
 
-**Example:** `jenkins-jobs --conf jenkins.ini delete jjb/ sdc-master-verify-java`
+**Example:** `jenkins-jobs delete jjb/ sdc-master-verify-java`
 
 The above command would delete the `sdc-master-verify-java` job.