yojenkins
is a cross-platform command line interface (CLI) tool to monitor, manage, and deal with Jenkins server. It makes it possible to interact with a Jenkins server without using the browser based Jenkins UI.
This tool is able to be integrated into a script as middleware in order to automate Jenkins related tasks or enable Jenkins configuration as code.
yojenkins
will liberate you and your browser from the Jenkins Web UI
With yojenkins
you can manage:
- Authentication: Authentication structure similar to AWS API
- Server: Create, shutdown, view queue, and more
- User accounts: Create, delete, add/remove permission, and more
- Nodes/agents: Create, delete, shut down server, and more
- Credentials: Create, update, delete, list, and more
- Folders: Create items, delete items, disable, enable, and more
- Jobs: Create, delete, trigger, monitor, search, and more
- Builds: Monitor, abort, tail logs, follow logs, and more
- Stages: Get info, get logs, view steps, view status
- Steps: Get info
- Other tools and functions: Run groovy scripts remotely, run custom REST calls, setup a shared library, view command usage history, and more
For a complete CLI command outline, see section below
For all information and documentation, please visit yojenkins.com
This video presents an overview of yojenkins
, while demonstrating a few basic funcitonalities and workflow.
If you happen to find any issues with this project or think of any features that you want to request, see the following links:
- Read more about the release cycle.
- Bug Reports
- Feature Requests
This is a very young project and I am always looking for help in any way. If you like this project, please consider helping.
- For financial or marketing support options see Support This Project!.
- To contribute to this project, see Contribute to This Project!.
If this project is not something you were were looking for, that ok, there are similar projects out there, which each one with their own advantages and disadvantages.
yojenkins
|
|-- account Manage user accounts
| |--- create Create a user account
| |--- delete Delete a user account
| |--- info Get user information
| |--- list List all users
| |--- password-reset Reset a user password
| |--- permission Add or remove user permission
| |--- permission-list List all available permissions
|
|
|-- auth Manage authentication and profiles
| |--- configure Configure authentication
| |--- show Show the local credentials profiles
| |--- token Generate authentication API token
| |--- user Show current user information
| |--- verify Check if credentials can authenticate
| |--- wipe Wipe all credentials for this device
|
|
|-- build Manage builds
| |--- abort Abort build
| |--- browser Open build in web browser
| |--- delete Delete build
| |--- diff Find difference between two builds
| |--- info Build information
| |--- logs Get build logs
| |--- monitor Start monitor UI
| |--- rebuild Rebuild a build with same parameters
| |--- stages Get build stages
| |--- status Build status text/label
|
|
|-- credential Manage credentials
| |--- config Get credential configuration
| |--- create Create new credentials
| |--- delete Remove credentials
| |--- get-template Cred. type template to create a cred.
| |--- info Credential information
| |--- list List credentials
| |--- move Move a credential to another folder/domain
| |--- update Reconfigure existing credentials
|
|
|-- folder Manage folders
| |--- browser Open folder in web browser
| |--- config Get folder configuration
| |--- copy Copy an existing item
| |--- create Create an item [folder, view, job]
| |--- delete Delete folder or view
| |--- info Folder information
| |--- items List all items in folder
| |--- jobs List all jobs in folder
| |--- search Search folders by REGEX pattern
| |--- subfolders List all subfolders in folder
| |--- views List all views in folder
|
|
|-- job Manage jobs
| |--- browser Open job in web browser
| |--- build Build a job
| |--- build-exist Check if build number exists
| |--- config Get job configuration
| |--- create Create a job
| |--- delete Delete job
| |--- diff Find difference between two jobs
| |--- disable Disable job
| |--- enable Enable job
| |--- info Job information
| |--- last Get previous build number
| |--- list List all builds for job
| |--- monitor Start monitor UI
| |--- next Get next build number
| |--- queue-cancel Cancel this job in queue
| |--- queue-check Check if this job is in queue
| |--- rename Rename job
| |--- search Search jobs by REGEX pattern
| |--- set Set the next build number
| |--- wipe Wipe job workspace
|
|
|-- node Manage nodes
| |--- config Get node configuration
| |--- create-ephemeral Setup a local or remote ephemeral node
| |--- create-permanent Setup a local or remote persistent node
| |--- delete Delete a node
| |--- disable Disable a node
| |--- enable Enable a node
| |--- info Node information
| |--- list List all nodes
| |--- logs Node logs
| |--- prepare Prepare a remote machine to become a node
| |--- reconfig Reconfigure the node
| |--- status Node status
|
|
|-- server Manage server
| |--- browser Open server home page in web browser
| |--- info Server information
| |--- people Show all people/users on server
| |--- plugins Show plugin information
| |--- queue Show current job build queues on server
| |--- quiet Server quite mode enable/disable
| |--- reachable Check if server is reachable
| |--- restart Restart the server
| |--- server-deploy Create a local development server (Docker)
| |--- server-teardown Remove a local development server
| |--- shutdown Shut down the server
|
|
|-- stage Manage build stages
| |--- info Stage information
| |--- logs Stage steps
| |--- status Stage status text
| |--- steps Get stage steps
|
|
|-- step Manage stage steps
| |--- info Step information
|
|
|-- tools Tools and more
|--- bug-report Report a bug
|--- docs Open browser to the documentation
|--- feature-request Request a feature
|--- history Show detailed command usage history
|--- rest-request Send a generic Rest request to server
|--- run-script Run Groovy script on server, return result
|--- shared-lib-setup Set up a Jenkins shared library