Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

THIS PAGE IS OUT OF DATE AND BEING UPDATED. FABRIC AND ITS REPOSITORIES HAVE MIGRATED TO GITHUB FOR SCM AND AZURE PIPELINES FOR CI

Contributors

NameEmail
Jason T Clarkjtclark@linux.vnet.ibm.com
Jessica Wagantalljwagantall@linuxfoundation.org
Ramesh Thoomurameshbabu.thoomu@gmail.com
Scott Zwierzynskiscottz@us.ibm.com

Summary

Summary

The Hyperledger Fabric (and associated) The Hyperledger Fabric (and associated) projects utilize various tools and workflows for continuous project development. This documentation will assist you in getting started with using these tools and understanding the workflow(s) our contributors use while working with the Fabric CI infrastructure.

...

For more information on how to use the sandbox, use the documentation in https://github.com/hyperledger/ci-management/blob/master/Sandbox_Setup.md

Anchor
hyperledger_fabric_projects_on_ci
hyperledger_fabric_projects_on_ci
Hyperledger Fabric projects on CI

The table below indicates all of the Hyperledger Projects that are built, tested, verified, and released using the Jenkins CI infrastructure:



Jenkins Dashboard

On the Jenkins dashboard, a list of all Jenkins jobs required to build, test, verify and release each of the Hyperledger Fabric projects is organized and displayed in separate views. For example, the Fabric view displays each of the jobs related to the fabric project:.

Image Removed

HereHere, all of the Jenkins jobs for testing the Fabric project are displayed. The Jenkins jobs are displayed in a table, and indicates:

...

Continuing with the Fabric project example, the jobs list contains multiple jobs required to accurately build, test, and verify the Hyperledger Fabric project. The job types for the Fabric project are as follows

* Verify
  * End-to-EndUnit Tests (performs e2e_cli, sdk node e2emake linter, java sdk e2e make unit-tests)

* UnitIntegration Tests (performs make linter, make unit-integration tests) * Documentation changes (Builds the documentation and ship it to nexus log server. )

You can check the RTD format of you patch set documentation build here https://logs.hyperledger.org/production/vex-yul-hyp-jenkins-3/fabric-rtddocs-verifybuild-masterx86_64/<build_number>/html

ex: https://logs.hyperledger.org/production/vex-yul-hyp-jenkins-3/fabric-rtddocs-verifybuild-masterx86_64/3592058/html

* Merge
   * End-to

...

-End (performs node-sdk e2e, java-sdk e2e, byfn-eyfn tests)
   * Unit-Tests


IMPORTANT NOTE: Although many of the job types listed above are common across all Hyperledger Fabric projects, the list indicated above is specific to the Hyperledger Fabric project. Different projects will have different job types based on their individual build/test/release requirements.

...

Verify jobs are triggers when a "patchset-created-event" is triggered in gerrit. All verify jobs are depends on the patchset parent commit and patchset commit. That tells, verify jobs run on the parent commit on which developer submitted patch not on the latest master code.

...

Merge jobs triggers when a “change-merged-event” event is triggered in gerrit. In all the merge jobs, Jenkins clones the latest master code and perform the tests, unlike verify jobs.

Release Jobs

...

With most job types, the Jenkins build jobs are broken down further to build, test, and release the Hyperledger Fabric projects with support for varying CPU architectures. They include:

  • x86_x64

  • s390x (No support beyond 2.0)

Support Support for varying test types

Additionally, with most job types, you will notice the Jenkins jobs are further isolated to include a number of test types. Those include:

  • End-to-EndEnd 

  • BYFN Checks (-EYFN [byfn, eyfn with (default, custom, couchdbCouchDB, node lang chaincode, java lang chaincode, raft.)]

  • Fabcar
  • Unit Tests

  • Smoke/Functional/Performance/Release tests ( More functional tests from the fabric-test repository)

For more information on what each of these test types are is used for, refer to the Fabric Hyperledger fabric CI ProcessOverview documentation.

CI-Management Repo

ref: https://github.com/hyperledger/ci-management/blob/master/docs/source/fabric_ci_process.rst

The ci-management repo hosts the The ci-management repo hosts the CI job definitions for all of the Hyperledger Fabric projects integrated with Jenkins. Each job configuration is written in YAML format , and built with the Jenkins Job Builder (JJB) tool.

...

Contributing to the Fabric CI process starts with identifying tasks to work on, and bugs to be fixed. The JIRA site provided by the Hyperledger Community is where to find these items. To narrow down tasks and bugs that are directly related to Fabric CI, use the following URLs:



Comment Phrases to trigger failed jobs

...

Step 2: Click on Reply and type the below comment phrases based on the project and click Post

CI jobs listens on listen to the below comment phrases , when you type a comment as reverify-x in fabric project, this triggers fabric-verify-x86_64 CI job.

fabric:

...

for each fabric project:

fabric:

Verify JobsCommentMerge JobsComment
fabric-verify-build-checks-x86_64Run

...

VerifyBuild/VerifyBuildfabric-merge-x86_64remerge-x
fabric-verify-unit-tests-x86_64.Run UnitTest

...

fabric-

...

merge-end-

...

2-

...

end-x86_64

...

...

remerge-

...

e2e 
fabric-verify-integration-tests-x86_64Run

...

IntegrationTestFor all merge jobsremerge
fabric-docs-build-x86_64Run DocsBuild

fabric-ca:

...

Verify JobsCommentMerge JobsComment
fabric-ca-verify-x86_64

...

reverify-

...

xfabric-ca-

...

merge-x86_64remerge-x
fabric-ca-verify-

...

fvt-

...

x86_64

...

reverify-fvtfabric-ca-merge-fvt-x86_64

...

remerge-fvt
fabric-rtd-verify-job

...

recheckfabric-

...

merge-end-2-end-x86_64

...

remerge-e2e 
For all verify jobsreverifyFor all merge jobsremerge


fabric-sdk-java:

Verify JobsCommentMerge JobsComment
fabric-sdk-java-master

...

reverify-node8z – triggers fabric-sdk-node8-verify-s390x job on s390x

...

-verify-x86_64

...

reverify-

...

xfabric-sdk-java-

...

master-

...

merge-x86_64remerge-x

...

fabric-sdk-java

...

-master-verify-1.4-x86_64reverify-1.

...

4fabric-sdk-java-

...

master-merge-1.

...

4-x86_64

...

remerge-1.4
fabric-sdk-java

...

-release-1.4-verify-x86_64reverify-x

...

fabric-

...

sdk-

...

java-

...

release-1.4-merge-x86_64

...

remerge-x
For all verify jobsreverifyFor all merge jobsremerge


...

fabric-chaincode-node:

fabric-baseimage:

Verify JobsCommentMerge JobsComment
{project}-verify-x86_64

...

reverify – triggers all the failed fabric-chaincode-node jobs

reverify-x{project}-merge-x86_64remerge-x
{project}-verify-s390xreverify-z{project}-merge-s390xremerge-z
For all verify jobsreverifyFor all merge jobsremerge


All other repositories use any of the below comment phrases

...

below comment phrases

fabric-samples                                   fabric-chaincode-java                      fabric-sdk-go

fabric-sdk-node                                 fabric-chaincode-evm                      fabric-sdk-py

fabric-gateway-java                         fabric-test

Verify JobsCommentMerge JobsComment
{project}-verify-x86_64reverify or reverify-x{project}-merge-x86_64remerge or remerge-x

Troubleshooting - Failing CI Jobs

...

If you are a developer having difficulty obtaining that green checkmark consistently from hyperledger-jobbuilder because your merge job or verify job fails, then *create a bug* in jira Jira to start the process rolling to fix the problem for everyone in the community!

...

Below is a table that shows you where to find the most informative resources for the most frequently asked questions about Fabric CI.


QuestionResource
Which Fabric projects are currently using CI?hyperledger_fabric_projects_on_ci
What is the process used to build, test, and release Fabric projects?https:
//github.com
/
hyperledger
/ci-
management/blob/master/docs/fabric_ci_process.md
docs.readthedocs.io/en/latest/
Where is the Jenkins CI for Hyperledger Fabric?https://jenkins.hyperledger.org/
Where is the sandbox installation of Jenkins CI for Hyperledger Fabric?https://jenkins.hyperledger.org/sandbox
Where can I found out more about each of the Jenkins jobs used to build, test, and release Hyperledger Fabric projects?https://github.com/hyperledger/ci-management
How do I write Jenkins job definitions for use with Hyperledger Fabric projects?https://docs.openstack.org/infra/jenkins-job-builder/definition.html
How should I test my Jenkins job definitions for use by the Fabric CI process?https://github.com/hyperledger/ci-management/blob/master/Sandbox_Setup.md
I want to find Fabric CI related tasks to work on. Where should I go?https://jira.hyperledger.org/issues/?filter=11500
I have questions about Fabric CI. Where should I go for help?https://chat.hyperledger.org/channel/ci-pipeline