Git Product home page Git Product logo

mymarvin's Introduction

MY_MARVIN

Introduction

MY_MARVIN is a Jenkins-based project aimed at mastering the art of automating everyday developer tasks. Utilizing Jenkins, the most popular open-source automation platform, this project encompasses setting up a comprehensive CI/CD pipeline that enhances the efficiency and reliability of the development process.

Project Overview

This project includes learning and implementing Jenkins to automate tasks that range from simple periodic cleanups to full-scale production deployments. By the end of this project, you will gain hands-on experience in configuring and managing a Jenkins instance using Configuration as Code (JCasC) and Job Domain Specific Language (Job DSL).

Technical Requirements

  • Jenkins Version: Use the current LTS version of Jenkins.
  • Plugins: Only the required plugins listed below should be installed. Any use of unnecessary plugins will lead to evaluation failures.
    • cloudbees-folder
    • configuration-as-code
    • credentials
    • github
    • instance-identity
    • job-dsl
    • script-security
    • structs
    • role-strategy
    • ws-cleanup

Configuration Details

Configuration as Code (JCasC)

  • Implement your Jenkins configurations using a single YAML file named my_marvin.yml.
  • Ensure no hardcoded passwords; use environment variables instead.

Job DSL

  • Centralize all your DSL scripts into one job_dsl.groovy file located at the root of the repository.

Users & Roles

  • Hugo: Admin with full permissions specified by the environment variable USER_CHOCOLATEEN_PASSWORD.
  • Garance: "Gorilla" role with extended permissions including job creation and cancellation.
  • Jeremy: "Ape" role with basic job build and view permissions.
  • Nassim: "Assist" role with view-only access to jobs.

Job Configurations

  • Tools Folder: Contains all tool-related jobs and configurations.
  • Clone-Repository Job: Setup a job to clone a repository from a provided GIT URL.
  • SEED Job: Generate jobs based on provided GitHub repository details.

Automation Strategy

Set automated triggers for job executions or configure manual triggers as needed, ensuring a robust and responsive CI/CD pipeline.

Usage Recommendations

  • Testing: Rigorously test your configuration and DSL scripts to ensure flawless operation during evaluations.
  • Docker: For ease of setup and testing, utilize Docker containers to run your Jenkins instance locally without the need for full installation.
  • Leverage Existing Projects: Use other Epitech projects to test your SEED job functionality.

Installation and Setup

Setup your .env file with necessary environment variables for user passwords and other configurations as per the project specifications.

To get started with this project, ensure you have Docker installed and run the following command:

docker compose up --build

Contributing

Feel free to fork the project and submit pull requests with enhancements or fixes that could improve the automation capabilities of MY_MARVIN.

Versioning

This project adheres to Semantic Versioning. For the versions available, see the tags on this repository.

Authors

Acknowledgments

  • Thanks to Epitech for providing the framework and use cases for this educational project.
  • Shoutout to all contributors and Jenkins community for their continuous support.

Good luck with your DevOps journey with MY_MARVIN!

mymarvin's People

Contributors

tom-mendy avatar jsuissayker avatar

Stargazers

 avatar

Watchers

 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.