Coder Social home page Coder Social logo

tanmaymunjal / jx-project Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jenkins-x-plugins/jx-project

0.0 0.0 0.0 2.5 MB

a binary plugin for creating quickstarts and importing projects

License: Apache License 2.0

Shell 5.99% JavaScript 0.23% Perl 0.74% Java 0.23% Go 90.41% Makefile 1.59% Smarty 0.78% Dockerfile 0.03%

jx-project's Introduction

jx project

Documentation Go Report Card Releases LICENSE Slack Status

jx project is a plugin to allow quickstarts to be created and repositories to be imported into either Jenkins servers or Jenkins X.

The idea is to provide a single developer UX around creating quickstarts and importing repositories whether you use just Jenkins or just Jenkins X or a combination of both.

Getting Started

Download the jx-project binary for your operating system and add it to your $PATH.

Importing Repositories and Creating Quickstarts

Just run the jx project command line and follow the instructions.

If you have ever seen Jenkins X or have used jx import or jx create quickstart you can try run those directly via:

  • jx project quickstart
  • jx project mlquickstart
  • jx project import

How it works

When importing a project jx project looks for a Jenkinfile in the source code.

If there is no Jenkinsfile then the wizard assumes you wish to proceed with a Jenkins X Pipeline based on Tekton and imports it in the usual Jenkins X way. You also get to confirm the kind of build pack and language you wish to use for the automated CI/CD - so its easy to import any workload whether its a library, a binary, a container image, a helm chart or a fully blown microservice for automated kubernetes based CI/CD.

If a Jenkinsfile is present then the wizard assumes you may wish to use a Jenkins server or Jenkinsfile Runner to run the pipelines, so it presents you with a list of the available Jenkins options to choose from.

When using a Jenkins Server you get two options:

  • use vanilla Jenkins pipelines via Multi Branch Project to perform the webhook handling and run the pipelines
  • use lighthouse for webhook handling and ChatOps on Pull Requests. Then when a pipeline is triggered we use the trigger-pipeline as a step to run the pipeline remotely inside a specific Jenkins server (without using the Multi Branch Project).

Supported Integrations

When importing a project these approaches are supported:

  • Jenkins X Pipeline using Tekton
  • Jenkins pipelines via Multi Branch Project
  • lighthouse for ChatOps triggering a remote Jenkins pipeline via trigger-pipeline (without using Multi Branch Project)
  • Jenkinsfile Runner based pipelines in Tekton. You can override the container image used for the pipeline on import via the --jenkinsfilerunner myimage:1.2.3 command line argument

Changes since jx import

For those of you who know Jenkins X and have used jx import before this wizard is a little different:

  • the commands are a little different:
    • jx create import is now jx project import
    • jx create quickstart is now jx project quickstart
    • jx create mlquickstart is now jx project mlquickstart
    • jx create project is now jx project
    • jx create spring is now jx project spring
  • when importing to Jenkins X we ask which build pack you wish to use (e.g. classic or kubernetes) so that you can import java libraries or node modules easily in addition to kubernetes native applications
  • the wizard will prompt you for the pack name (language) once the detection has occurred. Usually the pack name detection is good enough. e.g. detecting maven but you may wish to change the version of the pack (e.g. maven-java11)
  • when importing a project and you are using Jenkins X and Jenkins in the same cluster you get asked whether you want to import the project into Jenkins X or to pick which Jenkins server to use
  • we support 2 modes of importing projects to Jenkins
    • regular Jenkins import where a Multi Branch Project is used and Jenkins processes the webhooks
    • ChatOps mode: we use lighthouse to handle the webhooks and ChatOps and then when triggered we trigger regular pipelines inside the Jenkins server
  • if your repository contains a Jenkinsfile and you choose to import into a Jenkins server we don't run the build packs and generate a Dockerfile, helm chart or jenkins-x.yml

jx-project's People

Contributors

jstrachan avatar jenkins-x-bot-test avatar jenkins-x-bot avatar pow-devops2020 avatar rawlingsj avatar ankitm123 avatar msvticket avatar ryannealbt avatar dependabot[bot] avatar tdcox avatar dependabot-preview[bot] avatar yelhouti avatar cameronbraid avatar juneezee avatar gokula-krishna-dev avatar osamamagdy avatar wowq avatar joshuasimon-taulia avatar linuxsuren avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.