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

    2.0.0 • 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

    Keywords

    none

    Install

    npm i @genesisx/jenkins

    DownloadsWeekly Downloads

    53

    Version

    2.0.0

    License

    SEE LICENSE IN LICENSE

    Unpacked Size

    15.2 kB

    Total Files

    18

    Last publish

    Collaborators

    • sophiacmcg
    • shashixt
    • vigneshpushkaranps
    • tolalitnegi
    • nareshbhatia
    • iamdavidjackson
    • genesisy
    • venkateshmishra
    • dreamzmaster
    • harshi14
    • areai51