{"id":15717742,"url":"https://github.com/mohdatif1994/infinityflow","last_synced_at":"2025-07-16T06:41:13.728Z","repository":{"id":246581510,"uuid":"821091189","full_name":"mohdatif1994/InfinityFlow","owner":"mohdatif1994","description":"This automation framework is developed to facilitate end-to-end automation using Python scripts, GitHub, and Jenkins etc. The framework is designed to streamline and automate the CI/CD pipeline, ensuring efficient and consistent deployment of applications. ","archived":false,"fork":false,"pushed_at":"2024-08-09T18:51:21.000Z","size":50,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T01:29:03.599Z","etag":null,"topics":["autoamtion","automation","cicd","containers","framework","hooks","host","jenkins","linux","mac","python","python3","pythonscript","shell","shell-script","vm","windows"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mohdatif1994.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-27T19:47:24.000Z","updated_at":"2024-08-09T18:51:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"b37a061b-d166-4441-bdac-791d965b7a64","html_url":"https://github.com/mohdatif1994/InfinityFlow","commit_stats":null,"previous_names":["mohdatif1994/temp","mohdatif1994/infinityflow"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdatif1994%2FInfinityFlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdatif1994%2FInfinityFlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdatif1994%2FInfinityFlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdatif1994%2FInfinityFlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohdatif1994","download_url":"https://codeload.github.com/mohdatif1994/InfinityFlow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246381577,"owners_count":20768054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autoamtion","automation","cicd","containers","framework","hooks","host","jenkins","linux","mac","python","python3","pythonscript","shell","shell-script","vm","windows"],"created_at":"2024-10-03T21:51:09.505Z","updated_at":"2025-03-30T21:26:44.787Z","avatar_url":"https://github.com/mohdatif1994.png","language":"Python","readme":"# This Automation Framework developed to Learn the full E2E Automation. (Python Scripts, Github, Jenkins etc).\n\n![image](https://github.com/user-attachments/assets/a07fda81-41f4-4d60-97c0-00b9856bb767) Fig. 1\n\nThe idea behind this project is to Automate whole procees so that all concept gets clear...\n\n## So, now lets start describing all detailes of the above Diagram:-\n\n## **1. Developers:**\n\n### Role: \n    -\u003e Developers are responsible for writing, testing, and committing code.\n    -\u003e Interaction: They interact directly with the codebase stored in GitHub. \n    -\u003e Developers write code for new features, bug fixes, and improvements. This involves using programming languages, frameworks, and libraries relevant to the project.\n\nOnce the Developers pushed any changes to the Github then several Action will be taken care by the GitHub special Features.\n \n## **2. GitHub:**\n\nGitHub serves as a powerful repository platform for hosting and version-controlling code, This Automated framework offers an organized and structured framework that includes essential core libraries such as - \n\n      -\u003e SSH utility, \n      -\u003e host execution utility, \n      -\u003e config utility, \n      -\u003e VM utility, and \n      -\u003e various other utilities. \n\nThese core libraries are integral to the functionality of test scripts, which leverage them to execute tasks. \n\nDevelopers write scripts for different test scenarios and push the code to GitHub, where further actions are automated by GitHub Actions. \nThis automation pipeline ensures code quality and consistency by performing several checks:\n\n      -\u003e verifying code standards, \n      -\u003e enforcing pylint standards, \n      -\u003e running pre-commit checks, \n      -\u003e obtaining reviewer approvals, and \n      -\u003e incorporating additional features to enhance the framework. \n      \nThe test scripts execute on the Host, communicating with VMs via SSH and interacting with the host using Python modules, ensuring a seamless and efficient testing and deployment process.\n\n## **3. Jenkins:**\n\nWhen a pull request (PR) is raised, a webhook integrated with Jenkins gets triggered, initiating an automated sequence of actions. This webhook, configured within the version control system, sends a notification to the Jenkins server, prompting it to start a specific job or pipeline. The Jenkins job, upon receiving the trigger, begins by checking out the latest code from the repository associated with the PR. Subsequently, it executes a set of predefined scripts from the automation framework on the designated host. These scripts perform various tasks, such as running tests, building code, or deploying applications, ensuring that the changes introduced by the PR are thoroughly validated. This streamlined process not only enhances efficiency but also ensures that the codebase remains robust and free from integration issues.\n\nWhen a pull request (PR) is raised:\n\n     -\u003e A webhook integrated with Jenkins gets triggered.\n     -\u003e The webhook, configured in the version control system, notifies the Jenkins server.\n\nUpon receiving the trigger:\n\n    -\u003e Jenkins starts a specific job or pipeline.\n    -\u003e The Jenkins job checks out the latest code from the repository associated with the PR.\n\nExecution of scripts:\n\n    -\u003e Predefined scripts from the automation framework are executed on the designated host.\n    -\u003e These scripts perform tasks like running tests, building code, or deploying applications.\n\nBenefits:\n\n    -\u003e Ensures changes introduced by the PR are thoroughly validated.\n    -\u003e Enhances efficiency.\n    -\u003e Maintains the robustness and integration integrity of the codebase.\n\n## **4. Host:**\n\nIn our architecture, the host functions as a vital mediator, orchestrating communication between scripts, virtual machines (VMs), and containers through SSH and designated ports. This setup is particularly valuable as we utilize the host to address SSH communication-related APIs, facilitating a deeper understanding of these processes during our learning phase. The host environment may include a diverse array of components, such as:\n\n    -\u003e Linux VMs: Providing robust environments for running applications and services.\n    -\u003e Windows VMs: Enabling the execution of Windows-based applications and tools.\n    -\u003e Containers: Offering lightweight, portable environments for application deployment and scaling.\n    -\u003e Additional Tools: Supporting various utilities that enhance functionality and ease of management.\n\nWe can execute scripts directly on the host to carry out a variety of tasks, including fetching data, running system commands, or automating workflows. The OS module plays a crucial role here, allowing for efficient interaction with the underlying operating system, thus streamlining operations and improving overall productivity.\n\n## **5. UI or Web Page or Orchestrator:**\n\nThe UI, also referred to as the Web Page or Orchestrator, offers a user-friendly graphical interface that enables efficient monitoring, management, and control of execution processes. Users can interact with the orchestrator to perform a variety of essential tasks, including:\n\n    -\u003e Checking the Status of Builds: Easily monitor the progress and health of builds.\n    -\u003e Running Scripts: Execute scripts directly from the interface for seamless integration.\n    -\u003e Scheduling Tests: Organize and schedule tests in sequences to optimize workflow.\n    -\u003e Storing Logs: Keep records of execution logs for future reference and analysis.\n    -\u003e Controlling Execution: Simplify the execution process with straightforward controls.\n    -\u003e Managing Resources: Allocate and manage resources effectively to enhance performance.\n    -\u003e Viewing Logs: Access detailed logs to troubleshoot and understand system behavior.\n\nThis orchestration layer significantly enhances user interaction, providing a comprehensive platform for operational efficiency.\n\n\n-------------------------------------------------------------------------------------------------------------------------------------\n# The project is structured into five key phases as highlighted in the above Fig 1:\n\n    1. Host Environment Setup: Begin by establishing the host environment. This involves writing the necessary libraries and scripts to facilitate communication between the host, virtual machines, and containers.\n\n    2. GitHub and Jenkins Configuration: Next, configure GitHub to integrate with Jenkins, enabling seamless interaction between the two platforms.\n\n    3. Host Integration as a Jenkins Node: Integrate the host as a node within Jenkins, setting up triggers that activate automation whenever an action occurs in GitHub.\n\n    4. User Interface Development: Create a user-friendly web interface that allows users to interact with the automation framework effortlessly, providing a graphical means to initiate processes.\n\n    5. UI and Host Integration: Finally, link the user interface with the host, allowing users to trigger the automation framework directly from the web page.\n-------------------------------------------------------------------------------------------------------------------------------------\n\n----------------------------------------------  #Steps to Configure and Execute --------------------------------------------------\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohdatif1994%2Finfinityflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohdatif1994%2Finfinityflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohdatif1994%2Finfinityflow/lists"}