eGov Platform_Implementation CI_CD pipelines & it's structures

eGov ERP DevOps

eGov Platform_Implementation CI_CD pipelines & it's structures

Contents:

  1. Source Code Management (SCM): A Github Strategy

1.1. Git n Github
1.2. public & private repo (platform & implementation)
1.3. Git folder structure
1.4. Branching
1.5. merge with master
1.6. integration with jenkins

  1. Jenkins:

2.1. Configuring job: github project
2.2. Implementation build
2.3. Job creation
2.4. Configuring job: approved based promotion
2.5. Build pipeline (ImplBuild, {dev/qa/uat}, {prod})
2.6. Deployments

  1. Continuous Integration (CI)

  2. Continuous Deliverables (CD)

  3. Platform Build and it's stages

  4. Customer Build and it's stages

  5. Promoting the builds

  6. Punjab Implementation

  7. BPA Implementation

  8. Kozhikode Implementation

  9. AP Implementation

  10. COC Implementation

  11. NDMC Implementation

1. Github Strategy:
1.1 Git and Github -
Git: It is a Distributed Version Control System for tracking versions of files.
Github: It is web portal and cloud hosting service for your Git repositories.
Git allows you to track versions of your code in your local machine. However, if you want a remote backup of your code or want to publish your code to a community then you've to push it to Github.
1.2. Public & Private repo (platform & implementation) -
Public Repositories: All the eGov Platform related projects were kept open, and it's under open source.
Private Repositories: Usually our Implementation/Customer specific Projects goes under the private repo. With some exceptions eGov Platform projects were made private like our DIGIT-BPA-DCR.
1.3. Git folder structure -
Git as a SCM(Source Code Management), project folder structure designed and maintained as shown below.
> ERP Project git repository folder structure:
egov(Repository_Name/branch:master)| pom.xml (parent pom)||_egov-commons(Module_Name)| | pom.xml(Module_pom)| || |src||main|| |_java/org/egov|| ||| |resources|| |config/spring|| |db/migration|| |_main|| | V20160922112506.sql|| |_sample|| V20160922112506.sql||test||Module_Name| | pom.xml(Maven_File)| || |src||main|| |_java/org/egov|| ||| |resources|| |config/spring|| |db/migration|| |_main|| | Migration_File.sql|| |_sample|| Migration_File.sql||_test
> Microservice Project git repository folder structure:
egov-ap-services (Project)
|
|___asset (Modules)
| |
| |___asset-services (services)
| |___[src]
| |___Dockerfile
| |___pom.xml
|
|___web (Modules)
| |
| |___asset-web (services)
||___[app]
||___[resources]
||___Dockerfile
||___build.wrflo
|
|___Jenkinsfile
|___build.sh
1.4. Branching
1.5. merge with master
1.6. integration with jenkins -
Using github-webhooks, project is integrated to the jenkins by adding webhook details:

  • Add Payload URL

  • Add secret (if wants)

  • Select events like to trigger webhook as Just the push event.

  • And make trigger event Active

  • Do Add Webhooks

DevOps as a Culture