# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Jenkins
spec:
    description: An open source continuous integration (CI) server.
    coverImage: https://www.jenkins.io/images/jenkins-logo-title-dark.svg
    icon: https://avatars.githubusercontent.com/u/107424?s=200&v=4
    variables:
        - key: SITE_DOMAIN
          type: DOMAIN
          name: Site Domain
          description: This domain will be the URL of your Jenkins.
    tags:
        - CI
        - Tool
    readme: |-
        # Jenkins
        ## Overview
        Jenkins is an open-source automation server that enables developers to build, test, and deploy their software efficiently. It is designed to facilitate continuous integration and continuous delivery (CI/CD) processes, allowing teams to deliver high-quality software at a rapid pace.
        ## Key Features
        - **Extensible**: Jenkins supports a vast array of plugins that enhance its functionality, allowing integration with various tools and technologies.
        - **Easy Installation**: It can be easily set up on various platforms, including Windows, macOS, and Linux.
        - **Distributed Builds**: Jenkins can distribute build and test loads across multiple machines, improving performance and reducing build times.
        - **Pipeline as Code**: With Jenkins Pipeline, users can define their build processes in a domain-specific language (DSL), making it easier to manage and version control.
        - **Rich Ecosystem**: A large community contributes to Jenkins, providing numerous plugins and integrations with popular tools like Git, Docker, Kubernetes, and more.
        ## Use Cases
        - Automating the build process for software projects.
        - Running automated tests to ensure code quality.F
        - Deploying applications to various environments seamlessly.
        - Monitoring the execution of builds and tests in real time.
        ## Conclusion
        Jenkins is an essential tool for modern software development, enabling teams to automate processes, enhance collaboration, and deliver software faster and more reliably.
        ## Precautions
        The Jenkins initial setup user needs to log in and copy the password to proceed with the installation. The password can also be found at `/var/jenkins_home/secrets/initialAdminPassword`.
    services:
        - name: Jenkins
          icon: https://avatars.githubusercontent.com/u/107424?s=200&v=4
          template: PREBUILT
          spec:
            source:
                image: jenkins/jenkins
            ports:
                - id: jenkins
                  port: 8080
                  type: HTTP
          domainKey: SITE_DOMAIN
