@genesisx/jenkins
TypeScript icon, indicating that this package has built-in type declarations

4.0.1 • Public • Published

Genesis - jenkins package

This package will add a Jenkinsfile template to the root of your project that can serve as a starting point for a CI/CD pipeline. It comprises of followig stages

  • Checkout
  • Prepare
  • Lint
  • UnitTest
  • Build
  • Docker
  • Deployment

Usage

Prerequsite

For Using this package into your app, please follow the below steps

  • Install this npm package to your repo first
  • yarn add @genesisx/jenkins
  • or npm install @genesisx/jenkins
  • Now follow the either of the two modes to use this generator

Via NX Console

  • Goto nx console -> Genrate > search for @genesisx/jenkins - template
  1. Use Nx Console > Genrate > @genesisx/jenkins:template

  2. Fill the form as below which will be entered into your jenkins file atomatically

  • credentialsID * Enter your credentials ID
  • directory
    Path of the directory in which the jenkinsfile will be placed
  • gitWorkFlow Git workflow for use with Jenkins files
  • name The name of the project that will be used in the Jenkinsfile.
  • namespace This is the namespace that will be utilised in the Jenkinsfile.
  • passwordVariable This is the password that will be utilised in the Jenkinsfile.
  • registry This is the registry that will be utilised in the Jenkinsfile.
  • releaseName This is the releaseName that will be utilised in the Jenkinsfile.
  • usernameVariable
    This is the usernameVariable that will be utilised in the Jenkinsfile.
  • version This is the version that will be utilised in the Jenkinsfile.
  1. This will create a file JenkinsFile with the above entered configuration.

Via Command line

  • Alternatively, below command can be used

  • nx generate @genesisx/jenkins:template

  • Fill the required parameters asked after that

  • e.g

- Suppose you have generated a new react applicationw ithname myReactApp , 
- Run below commands 
nx generate @genesisx/jenkins:template 
✔ What project name would you like to use? myReactApp
✔ Which directory would you like to create the Jenkinsfile in?  /
✔ What version would you like to use?  2.3.1
✔ What namespace would you like to use?  myReactApp
✔ What release name would you like to use? BetaRelease
✔ What Git workflow name would you like to use? gitflow
✔ What registry would you like to use? npm
✔ What credentials ID would you like to use? ssh
✔ What password would you like to use? abcdef
✔ What username would you like to use? usernameabc
CREATE Jenkinsfile
``
- You can validate the Jenkinsfile at the root of your workspace, you can now customize it

## Build Stages

### Checkout

This stage setup git modules and checkout code merge is possible for feature & master branch

### Prepare

This stage setup the base modules needed by respective projects for subsequent stages.

### Lint & UnitTest

These Stages runs linting and unit test check against config made in the projects.eg files: jest.config.js, .eslintrc.json

### Build & Docker

These stages build the apps and create docker images for affected applications and publish those images to artefactory store. '''here PS docker registry been used'''

### Deployment

This stage leverage the k8 config in each apps to deploy app to infra configured in those files. i.e: ingress,service, deployment yaml.

## Note

By leveraging nx framework we are able to make pipeline optimised in easier way to run affected apps. eg:
'''yarn nx affected:apps --all'''

## Documentation
- Refer additional [documentation](https://genesis.pscloudhub.com/documentation/docs/jenkinsfile-info) for more details

## Contribution
### Build and Test
Run `nx build jenkins` to build the package.
Run `nx lint jenkins` to run lint checks on the package.
Run `nx test jenkins` to execute the unit tests via [Jest](https://jestjs.io).

## Publishing

To publish the package you must first be logged into NPM (npm login) then run this command from the root of the project. 
- Make sure the package name in package.json should start with @genesisx/ 
- Also use the correct version number in package.json same will be used for the published package.
- Use your NPM js credentials (Publicis Sapient) with publish rights
- Verify the package at https://www.npmjs.com/settings/genesisx/packages

npm publish dist/packages/jenkins --access public

Readme

Keywords

none

Package Sidebar

Install

npm i @genesisx/jenkins

Weekly Downloads

0

Version

4.0.1

License

SEE LICENSE IN LICENSE

Unpacked Size

15.2 kB

Total Files

18

Last publish

Collaborators

  • varkisebi
  • devesh.kaushal
  • paribhasika
  • sophiacmcg
  • shashixt
  • vigneshpushkaranps
  • tolalitnegi
  • nareshbhatia
  • iamdavidjackson
  • genesisy
  • venkateshmishra
  • dreamzmaster
  • harshi14
  • areai51