jenkins.io Documentation

repository·master·Indexed 19 days ago

https://github.com/jenkins-infra/jenkins.io

Content and infrastructure documentation for the official Jenkins website. Includes upgrade guides for Jenkins versions 2.107.1 through 2.479.1, covering Java 17+ requirements, Configuration as Code (CasC) race conditions, Remoting version compatibility, and mandatory plugin upgrades for Spring Security 6 and Jakarta EE 9.

Tokens
158K
Snippets
342
Records
745
Agent score
65%

What's inside jenkins.io

  1. Overview of Jenkins Docs Sites Retooling Project

    master

    The Jenkins documentation infrastructure is transitioning from an Awestruct-based build system to modern static site generation tools. This retooling aims to solve the limitation where technical documentation was not bound to specific product versions.

    Key architectural changes include:

    • English Site (jenkins.io): Moving from Awestruct to Antora and Vite.js to provide versioned documentation.
    • Chinese Site (jenkins.io/zh/): Moving from Awestruct to Docusaurus to provide a modern look and version control.
    • Shared Components: UI components shared across various Jenkins websites (like jenkins.io and plugins.jenkins.io) are managed in the jenkins-io-components repository.
  2. Overview of the AI Chatbot to Guide User Workflow Project

    master

    This project involves developing an AI-powered chatbot integrated directly into the Jenkins interface. The goal is to assist users in navigating workflows, accessing documentation, and troubleshooting issues using natural language queries.

    Core Objectives

    • Workflow Guidance: Answering questions like "How to set up a Jenkins pipeline?" or "How to configure Jenkins for specific use cases?".
    • Troubleshooting: Assisting users with common Jenkins issues.
    • Resource Access: Providing quick access to Jenkins core, plugins, and official documentation.

    Project Details

    • Category: Plugins
    • Skills Required: NLP, Python, JavaScript/TypeScript, LLM, AI/ML, UI/UX, and Jenkins.
    • Estimated Effort: 175 - 350 hours.
    • Difficulty: Intermediate to Advanced.
  3. Overview of Jenkinsfile Runner Actions for GitHub Actions

    master

    Jenkinsfile Runner Actions allow users to execute Jenkins pipelines directly within GitHub Actions runners. This enables running Jenkins pipelines in a Function-as-a-Service (FaaS) context. The project provides two main types of execution models:

    1. Runtime type actions: These run the pipeline directly on the GitHub Actions runner host machine. They are compatible with all runner types (Linux, macOS, Windows) but download dependencies at runtime.
    2. Container type actions: These run the pipeline inside a customized container. Most dependencies are pre-prepared in the container, making them faster and more isolated, but they are primarily designed for Linux runners.

    These actions are built upon the Jenkinsfile runner command-line tool.

  4. Overview of the Plugin Installation Manager Tool

    master

    The Plugin Installation Manager Tool is a command-line utility designed to automatically install Jenkins plugins based on provided input. It is primarily used to create reproducible environments and is integrated into official Jenkins container images.

    Core Purpose:

    • Automate plugin installation via CLI.
    • Support reproducible environment setups.
    • Facilitate plugin pre-installation in Docker images.

    Key Technical Domains:

    • Java
    • YAML and data structures
    • Package management theory
    • Command line interface (CLI) design
    • Jenkins Docker images and Configuration as Code (CasC)
  5. Overview of Jenkins Pipeline as YAML

    master

    The Pipeline as YAML experiment aims to provide out-of-the-box support for Jenkins Pipeline definitions using YAML instead of the traditional Groovy-based Declarative or Scripted syntaxes. This approach aims to increase accessibility for users unfamiliar with low-level Pipeline scripting and to improve interoperability with other CI/CD systems like JayeX, Tekton, Travis CI, and GitHub Actions.

    Key features targeted for this syntax include:

    • Pipeline Types: Support in Pipeline jobs, Multi-Branch Pipelines, and organization folders.
    • SCM Integration: Support for YAML definitions stored in SCM (e.g., a jenkinsfile.yml in the repository root).
    • Declarative Features: Support for steps, agent definitions, matrix configurations, and post-build actions.
    • Tooling: Provision of a YAML Schema or a YAML schema generator for the new syntax.
  6. Overview of Blue Ocean functionality

    master

    Blue Ocean is a Jenkins interface designed specifically for Jenkins Pipelines to provide a modern user experience with reduced clutter and increased clarity.

    Key Features:

    • Pipeline Visualization: Sophisticated visual representation of continuous delivery (CD) pipelines for intuitive status comprehension.
    • Pipeline Editor: A visual tool to guide users through creating Pipelines as code, which can then be committed to source control.
    • Personalization: UI tailored to the specific role-based needs of team members.
    • Exception Handling: Pinpoint precision to show exactly where attention is needed during a run.
    • VCS Integration: Native integration for branches and pull requests (e.g., GitHub, Bitbucket).

    Note on Maintenance Status: Blue Ocean is currently in a maintenance-only mode. It will not receive new features or enhancements, only selective updates for significant security issues or functional defects. If you are starting a new project, consider using the Pipeline: Stage View or Pipeline Graph View plugins instead.

  7. Monitor Jenkins Remoting with OpenTelemetry

    master

    The remoting-opentelemetry-plugin allows system administrators to monitor and troubleshoot the Jenkins Remoting module (the communication layer between Jenkins controller and agents) using OpenTelemetry.

    It collects and exports telemetry data including:

    • Metrics: General system metrics (e.g., System CPU load, JVM memory usage) and Filesystem metrics. Metrics can be filtered using regular expressions.
    • Logs: Agent logs exported to an OTLP/gRPC endpoint.
    • Traces: (Note: Implementation details for tracing are listed as future work/ongoing research).

    Data is sent to an OpenTelemetry Protocol (OTLP) endpoint, which you can then visualize using tools like Prometheus, Loki, and Grafana.

  8. Understand Jenkins General Terminology

    master

    This glossary defines the core components and concepts used within the Jenkins ecosystem. Understanding these terms is essential for configuring Jenkins, writing Pipelines, and managing infrastructure.

    Core Infrastructure

    • Controller: The central, coordinating process that stores configuration, loads plugins, and renders user interfaces. (Note: Master is a deprecated term for Controller).
    • Node: Any machine in the Jenkins environment capable of executing work. Both the Controller and Agents are considered Nodes.
    • Agent: A machine or container that connects to a Controller and executes tasks. Agents are often grouped by Label (e.g., linux, docker) to match task requirements.
    • Executor: A slot on a Node that allows a specific number of concurrent Jobs or Pipelines to run. The number of executors determines a Node's concurrency capacity.
    • Cloud: A configuration that provides dynamic provisioning of Agents (e.g., using Azure VM Agents or Amazon EC2 plugins).
    • Workspace: A disposable directory on a Node's file system where a Job or Pipeline performs its work.

    Execution and Workflow

    • Job: A user-configured description of work (e.g., building software).
    • Pipeline: A user-defined model of a continuous delivery pipeline.
    • Step: A single task that tells Jenkins what to do inside a Pipeline or Job.
    • Stage: A conceptually distinct subset of a Pipeline (e.g., "Build", "Test", "Deploy") used for visualization and progress tracking.
    • Build: The result of a single execution of a Job or Pipeline.
    • Trigger: The criteria used to start a new Job or Pipeline run.
    • Upstream/Downstream: An Upstream job triggers a separate job; a Downstream job is the one being triggered by another.

    Artifacts and Data

    • Artifact: An immutable file generated during a Build or Pipeline run that is archived on the Controller for later retrieval.
    • Fingerprint: A globally unique hash used to track an Artifact across different Pipelines or Jobs.
    • Publisher: A component that runs after all configured Steps are complete to publish reports or notifications (e.g., JUnit results).
    • Resource Root URL: A secondary URL used to serve potentially untrusted content, such as build artifacts, distinct from the main Jenkins URL.
  9. Explore the Custom Jenkins Distribution Service

    master

    The Custom Jenkins Distribution Service is a tool designed to help users package Jenkins distributions as WAR files or Docker images based on specific configurations. It allows for scenario-based configuration of Jenkins core versions, plugins, common settings (user/password, update-center), and plugin-specific configurations (Kubernetes, Sonarqube).

    Key features include:

    • Selection of Jenkins core version and plugins.
    • Support for common and plugin-based configurations.
    • Integration with backup/restore and data storage solutions.
    • Output as a jenkins.war or a Docker image.

    The service is intended to be self-hostable by Jenkins users for internal use.

  10. Building Android Apps with Jenkins (GSoC 2024 Project Idea)

    master

    This project explores best practices and architectural templates for building Android applications using Jenkins. The goal is to document successful patterns and avoid common pitfalls in Android CI/CD.

    A proposed proof-of-concept architecture includes:

    • A Jenkins controller configured with JCasc.
    • An Android agent.
    • A generic Docker agent.
    • An Android emulator.
    • An Android device farm (e.g., using STF).

    The setup is intended to be docker-compose based and compatible with Windows, Linux, Vagrant, macOS (x86 and ARM), and Gitpod, making it easily transposable to production environments.