npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@genesisx/jenkins

v4.0.1-beta0.1

Published

This Generator enables Easy and quick way to setup jenkins pipeline for the project.

Downloads

75

Readme

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