eGov ERP DevOps
eGov Platform_Implementation CI_CD pipelines & it's structures
Contents:
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
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
Continuous Integration (CI)
Continuous Deliverables (CD)
Platform Build and it's stages
Customer Build and it's stages
Promoting the builds
Punjab Implementation
BPA Implementation
Kozhikode Implementation
AP Implementation
COC Implementation
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