From 657f74e8d25c52b22794b7395b84ce5216e24965 Mon Sep 17 00:00:00 2001 From: Regmiram Date: Sat, 9 Dec 2023 12:47:16 +0545 Subject: [PATCH] Create exercise1.md --- exercise1.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 exercise1.md diff --git a/exercise1.md b/exercise1.md new file mode 100644 index 0000000000..12bdd0ab6c --- /dev/null +++ b/exercise1.md @@ -0,0 +1,24 @@ +# `Exercise 1` + +`In a hypothetical scenario where a team of six is actively developing an application, let's consider a language like Python for the project.` + +## CI Steps in Python Ecosystem: + +1. Linting: For Python, flake8 and pylint are commonly used tools for code linting. These tools help maintain code quality by checking for style issues, errors, and potential bugs. + 2.Testing: pytest and unittest are popular testing frameworks in Python. They allow developers to write and execute tests to ensure the application's functionality. +2. Building: Python projects might use tools like setuptools or poetry to manage dependencies and package the application for distribution. + +## Alternatives to Jenkins and GitHub Actions: + +1. Travis CI: A cloud-based CI/CD service supporting various languages and offering ease of integration with GitHub repositories. +2. CircleCI: Another cloud-based CI/CD platform providing flexibility in configuring pipelines and supporting Python projects among others. +3. GitLab CI/CD: Integrated within GitLab, offering self-hosted and cloud-based options, enabling CI/CD pipelines for Python projects. + +## Self-hosted vs. Cloud-based CI Environment: + +1. Decision Factors: Considerations such as team expertise, infrastructure costs, scalability needs, and maintenance efforts. +2. Self-hosted: Offers greater control over the CI environment, suitable for specialized requirements or strict security policies. +3. Cloud-based: Provides ease of setup, scalability, and maintenance handled by the service provider, suitable for teams focusing on rapid development and deployment. + +`To decide between self-hosted or cloud-based CI, gather information on the team's expertise in managing infrastructure, budget constraints, security needs, and scalability requirements. +A self-hosted setup might be beneficial for stringent security needs or specialized configurations, while a cloud-based environment might suit teams focusing on agility and cost-effectiveness.`