Table of Contents |
---|
Links
Configure git for http only clients - as in developers behind a firewall proxy that blocks SSH (in this case use git push origin HEAD:refs/for/master instead of git review - Configuring Gerrit
Prerequisite: Set Up
The actions described in this section depend on having the requisite set of tools and settings on your development machine. See Setting Up Your Development Environment.
...
ONAP uses Gerrit to automate the process of reviewing all code changes before they are committed to the Git repository. Here is a tutorial and reference on using Gerrit: https://gerrit.onap.org/r/Documentation/index.html.
Using the Command Line to Clone the Repository
- Move to the folder at the root of your development directory. For example:
cd C:\Users\<user>\Documents\work
- Add a remote pointer to the Gerrit server that hosts your repository using either SSH or HTTPS. (Note: <REPONAME>s are given in various Development Guides.
Using SSH:git remote add origin ssh://USERNAME@gerrit.openecomponap.org:29418/<REPONAME>
Using HTTPS:
With HTTPS, first you will need the Gerrit HTTP-generated password for each HTTPS operation with Gerrit/Git.
git remote add originhttps://USERNAME@gerrit.onap.org/r/a/<REPONAME>
- Now clone the remote repository. Since we clone in the current folder, it will create a subfolder with the remote copy.
Using SSH:git clone ssh://USERNAME@gerrit.openecomponap.org:29418/<REPONAME>
Using HTTPS:
With HTTPS, first you will need the Gerrit HTTP-generated password for each HTTPS operation with Gerrit/Git.
git clone https://USERNAME@gerrit.onap.org/r/a/<REPONAME>
...
Pushing Changes for Review Using a Command Line (optional)
Here are the Git commands to add some files and make a commit with an associated message:
git add somefiles
git commit -am m "My first Awesome commit"
Note that this is just an example and the commit message should be more explicit than that.
Now that everything is ready, you can sign off your commit:
git review -s
if asked for a remote gerrit run
git config --global gitreview.remote origin
You may be prompted for your Linux Foundation account password. To verify that the commit worked, this command will show you the commit message and the sign off entry:
See the exact commit message format at Commit Messages
git commit -as s --amend
Info | ||
---|---|---|
| ||
You can automatically add the signature for all your commits by setting the git configuration:
|
...
Eventually, we can push the change to the gerrit server:
git review
Committer/Contributor Actions
The code should now appear in the gerrit web interface. A contributor or committer can review it with a -1/0/+1 and mark it as verified with test results if available. It needs a committer to approve it with a +2 rating, and to also move the verifed flag to +1. The committer does this by visiting the gerrit.onap.org site and logging in.
...
The committer may take any of several actions, such as clicking on the "Reply" button, adding reviewers, adding a review comment, and moving the flags to +2 and +1
Once a committer/contributor approves it, the code can be merged to the master branch.
...
Then enter command git commit -as s --amend to show the commit message and the sign off entry, as shown below. Make sure the email address is the exactly the same as the email you used in the Linux Foundation account. If not, update the address.
...
If you have been selected as the reviewer of the changes. You can right click the corresponding commit and click Review, Code-Review to give your score and comments for the change.
JBL Templates for on-demand Gerrit recheck or remerge
https://lists.onap.org/pipermail/onap-discuss/2018-January/007781.html
https://lists.onap.org/g/onap-discuss/message/7773?p=,,,20,0,0,0::relevance,,recheck,20,2,0,22459587
Thanks Alexis de Talhouët - you can type "recheck" or "remerge" in the comment to kick in another JobBuilder run if required
A rebase will also kick in a build
see the ci-management ONAP project
https://github.com/onap/ci-management/blob/master/jjb/global-macros.yaml#L343
Failed Commit / Resubmit
If issues are found, both contributors and committers can amend the review (use the top-left download link on the review screen to get the direct clone commands that would download the reviewed code in a local repository)
...
ssh-add onap_rsa git clone ssh://username@gerrit.openecomp.org:29418/portal or via https (note openecomp.org now redirects to onap.org) obrienbiometrics:onap4 michaelobrien$ git clone https://gerrit.onap.org/r/a/mso Cloning into 'mso'... Username for 'https://gerrit.onap.org': michaelobrien Password for 'https://michaelobrien@gerrit.onap.org': remote: Total 4596 (delta 0), reused 4596 (delta 0) Receiving objects: 100% (4596/4596), 2.94 MiB | 1.68 MiB/s, done. Resolving deltas: 100% (1985/1985), done. |
---|
Magic Words
Sometimes automatic verification/build/deploy doesn't happen as expected. In that case, use the gerrit Reply feature to insert the magic word into the message body.
Action Desired | Magic Words | Result | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trigger the verify job | recheck | re-runs the Jenkins Job Builder (JJB) on an unmerged set of code | |||||||||||||
trigger check of self release | recheck|reverify | will trigger the "{project-name}-release-verify-{stream}" job. Will make sure the release file contains the needed information and that the candidate exists. (NOTE: possible confusion here over syntax...is that bar (|) to be included or can you use either of these words in the Reply?) Ref: Self Releases Workflow (Nexus2) | |||||||||||||
trigger the helm verify job | verify-helm | re-runs the JJB verify-helm job used in the OOM project | |||||||||||||
trigger the merge build Jenkin job | remerge | re-runs the JJB deploy on a merged set of code | |||||||||||||
trigger self release of artifact | remerge | runs the "{project-name}-release-merge-{stream}" job to push the release and tag the repo. Ref: Self Releases Workflow (Nexus2) | |||||||||||||
trigger daily release job | please release | re-runs the JJB daily release build | |||||||||||||
stage-release | re-runs the JJB daily maven-stage build (replaces "please release") | ||||||||||||||
trigger CLM jobs | run-clm | The CLM jobs are still scheduled to run every Saturday, this feature can be useful for debugging on demand. Commenting "run-clm" in a gerrit that is not merged, will not trigger the CLM job based on that revision but will trigger the job based on the tip of the branch. This job is designed to always run on the latest tip of the branch to avoid inconsistencies on the reports. Source: Configuring Gerrit | |||||||||||||
trigger Sonar job | run-sonar | this is used to follow up closely on code coverage progress. | |||||||||||||
rebase | N/A | There is no magic word for this desired action. Instead, hit the button in the review page. | |||||||||||||
trigger OOM CD deployment / healthcheck for component under review | run-helm-deploy | 20181122 - in progress
will run an OOM deploy of the component and any dependent component on request (before a merge) for example if the current helm-verify job is +1 - a full deploy of the component via --set <pod>.enabled=true will be done, healthcheck run and reported back as a +1 if we get a pass for the pod Example of what the jjb job will run when deploying pomba - requires dmaap to function.
| |||||||||||||
Re-run CI Deployment test | oom_redeploy | Re-runs the remote CI oom deployment job in Orange Lab | |||||||||||||
Create Jenkins job in Sandbox | Posting this |