# Jenkins Jobs

#### Overview:

<figure><img src="/files/aVc8VJiOfncTjyGO14OB" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/7DiALsgET3u0Cemf3aOr" alt=""><figcaption></figcaption></figure>

**Build Job** : When a build job is run in jenkins, the Jenkinsfile pipeline script in the specific component repo checks-out the specified branch from github repository, does build excutes testcases and creates the docker image. This image details are then uploaded to Jenkins.

**Artifact Upload Job** : Once the build is complete, artifact upload is triggered automatically as per the configuration specified in Artifact upload Job Configure page. Jenkinsfile pipeline script in sunbird-devops/pipelines/upload/docker/ folder is executed and artifact is uploaded to docker-hub.

**Deploy Job**: Deploy jobs is triggered after the Artifact Upload Job as per the configuration specified in Deploy Job Configure page. Jenkinsfile pipeline script in sunbird-devops/kubernetes/pipelines/deploy\_core/ folder is executed. The deploy job uses the helm chart from kubernetes/helm\_charts/core/ folder. It fetches the artifact from docker and deploys it in application container along with envoy , opa containers in specific pod.

**Provisioning** **jobs** are run to setup the data stores(Cassandra, ES, Redis, Postgre), spark and kafka  in the middleware.

<table><thead><tr><th width="144">Build</th><th width="198">ArtifactUpload</th><th width="185">Deploy</th><th>Description</th></tr></thead><tbody><tr><td>Build/Core/AdminUtils</td><td>ArtifactUpload/Core/AdminUtils</td><td>Deploy/Kubernetes/AdminUtils</td><td>Used for build and deploy of adminutils service. Service handles mobile device registration and generating users' refresh token</td></tr><tr><td>Build/Core/Cassandra</td><td>ArtifactUpload/Core/Cassandra</td><td>Deploy/Kubernetes/Cassandra</td><td>Used for creating/migrating tables in Cassandra database</td></tr><tr><td><del>Build/Core/CassandraTrigger</del></td><td><del>ArtifactUpload/Core/CassandraTrigger</del></td><td><del>Deploy/Kubernetes/CassandraTrigger</del></td><td><del>Used for creating required Cassandra Triggers</del><br><del><strong>Note:</strong> This job is run only once.</del>  Deprecated</td></tr><tr><td>Build/Core/Cert</td><td>ArtifactUpload/Core/Cert</td><td>Deploy/Kubernetes/Cert</td><td>This service is part of old incredibles specification for generating certificates. This is not used for certificate generation after 4.10.0 release. Currently sunbird -RC is used for certificate generation.</td></tr><tr><td>Build/Core/CertRegistry</td><td>ArtifactUpload/Core/CertRegistry</td><td>Deploy/Kubernetes/CertRegistry</td><td>This service is part of old incredibles specification for generating certificates. This is not used for certificate generation after 4.10.0 release. Currently sunbird -RC is used for certificate generation.</td></tr><tr><td>Build/Core/DiscussionsMiddleware</td><td>ArtifactUpload/Core/DiscussionsMiddleware</td><td></td><td>Discussion Forum APIs are part of DiscussionsMiddleware. This service is based on NodeJS.</td></tr><tr><td><del>Build/Core/EncService</del></td><td><del>ArtifactUpload/Core/EncService</del></td><td></td><td><del>Used to build and deploy Encryption Service.</del> Deprecated</td></tr><tr><td>Build/Core/Groups</td><td>ArtifactUpload/Core/Groups</td><td>Deploy/Kubernetes/Groups/</td><td>Used to build and deploy Groups service</td></tr><tr><td>Build/Core/Keycloak</td><td>ArtifactUpload/Core/Keycloak</td><td>Deploy/Kubernetes/Keycloak</td><td>Used for packaging and deploying  Keycloak with Sunbird SPI provider</td></tr><tr><td></td><td></td><td>Deploy/Kubernetes/KeycloakRealm</td><td>Used for importing 'Sunbird' realm into new setup.<br><strong>Note:</strong> This job is run only once. </td></tr><tr><td>Build/Core/Learner</td><td>ArtifactUpload/Core/Learner</td><td>Deploy/Kubernetes/Learner</td><td>Used to build and deploy 'User-Org' Service</td></tr><tr><td>Build/Core/Lms</td><td>ArtifactUpload/Core/Lms</td><td>Deploy/Kubernetes/Lms</td><td>Used to build and deploy 'Course-Batch' Service</td></tr><tr><td>Build/Core/Nodebb</td><td>ArtifactUpload/Core/Nodebb</td><td>Deploy/Kubernetes/Nodebb</td><td>Used to build and deploy 'Discussion Forum'</td></tr><tr><td>Build/Core/Notification</td><td>ArtifactUpload/Core/Notification</td><td>Deploy/Kubernetes/Notification</td><td>Used to build and deploy 'Notification' Service</td></tr><tr><td><del>Build/Core/Prin</del>t</td><td><del>ArtifactUpload/Core/Print</del></td><td><del>Deploy/Kubernetes/Print</del></td><td><del>Handles PDF generation of certificates.</del> Deprecated</td></tr><tr><td>Build/Lern/LernDataProducts</td><td>ArtifactUpload/Lern/LernDataProducts</td><td>Deploy/Lern/LernDataProducts</td><td>Used to build and deploy "Lern Data products"</td></tr><tr><td>Build/Lern/LernFlinkJobs</td><td>ArtifactUpload/Lern/LernFlinkJobs</td><td>Deploy/Lern/LernFlinkJobs</td><td>Used to build and deploy "Lern Flink jobs"</td></tr><tr><td>Build/Sunbird-RC/CertificateApi</td><td>ArtifactUpload/Sunbird-RC/CertificateApi</td><td>Deploy/Sunbird-RC/CertificateApi</td><td>To create a build using docker hub image of Sunbird-RC Certificate Api release</td></tr><tr><td>Build/Sunbird-RC/CertificateSign</td><td>ArtifactUpload/Sunbird-RC/CertificateSign</td><td>Deploy/Sunbird-RC/CertificateSign</td><td>To create a build using docker hub image of Sunbird-RC Certificate Sign release</td></tr><tr><td>Build/Sunbird-RC/Registry</td><td>ArtifactUpload/Sunbird-RC/Registry</td><td>Deploy/Sunbird-RC/Registry</td><td>To create a build using docker hub image of Sunbird-RC release</td></tr><tr><td>Build/Core/APIManager</td><td>ArtifactUpload/Core/APIManager</td><td>Deploy/Kubernetes/APIManager</td><td>To build and deploy kong. </td></tr><tr><td></td><td></td><td>Deploy/Kubernetes/OnboardAPIs</td><td>Used for onboarding new APIs. This copies the kong-api.json to API manager.</td></tr><tr><td></td><td></td><td>Deploy/Kubernetes/OnboardConsumers</td><td>Used for onboarding new consumers to kong and providing them bearer token to access APIs.</td></tr><tr><td>Build/KnowledgePlatform/SyncTool</td><td>ArtifactUpload/KnowledgePlatform/SyncTool</td><td>Deploy/KnowledgePlatform/Neo4jElasticSearchSyncTool</td><td>Used for syncing data from neo4j/cassandra to Elastic search</td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td>Provision/Core/ApplicationElasticSearch</td><td></td><td></td><td>Installs Elasticsearch used by the applications</td></tr><tr><td>Provision/Core/Keycloak</td><td></td><td></td><td>Used for installing pre-requisites for Keycloak installation</td></tr><tr><td>Provision/Core/Cassandra</td><td></td><td></td><td>Installs Cassandra database</td></tr><tr><td>Provision/Core/ESMapping</td><td></td><td></td><td>Creates Elasticsearch indices and mappings</td></tr><tr><td>Provision/Core/LogES</td><td></td><td></td><td>Installs Elasticsearch used to store application and VM logs</td></tr><tr><td>Provision/Core/Postgres</td><td></td><td></td><td>Installs Postgres database</td></tr><tr><td>Provision/Core/PostgresDbUpdate</td><td></td><td></td><td>Creates Postgres tables, schema and users</td></tr><tr><td>Provision/DataPipeline/Kafka</td><td></td><td></td><td>Installs Kafka</td></tr><tr><td>Provision/DataPipeline/Redis</td><td></td><td></td><td>Install Redis</td></tr><tr><td>Provision/DataPipeline/Zookeeper</td><td></td><td></td><td>Installs Zookeeper</td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lern.sunbird.org/use/jenkins-jobs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
