Skip to content
This repository has been archived by the owner on May 23, 2023. It is now read-only.

Latest commit

 

History

History
19 lines (12 loc) · 1.52 KB

exercise1.md

File metadata and controls

19 lines (12 loc) · 1.52 KB

Python is very used as an intermediate language throughout the ecosystem of developing an application. Along with bash/shell, it is frequently used to bridge the gap, so to speak.

For linting on Python, pylint is a classic choice. while on bash side, shellcheck is always in my system, even though I barely think of it.

On the testing side, pytest is the de-factor the choice for unit tests and integrated tests for python. Regard of Shell, as its position, I'm not as familiar but according to google, tools like shellspec, bats and shUnit2 can be useful.

For building on Python, setuptools is the built-in tool for handling packages, while people write Makefile for simple bash building.

For setting up CI, it can be easy for a simple project to use in-house solution for listening incoming webhooks and dispatch accordingly. As of other SaaS, there are some common services like Travis CI, CircleCI, DroneCI, Gitlab CI/CD, and many solutions by cloud service providers like GCP, Azure, AWS.

Most of the existing services mentioned above are cloud-based solution, so it may be easier to just buy into

Some factors to think about:

  • Cost. If there are idle bare metals lying around, it may be worth it to spin them on some Gitlab runners.
  • Data safety/compliance. When the code/data are on more of a confidential state, it may not be as wise to give them around.
  • Development progress. It may not be as easy to debug on the cloud than having all the data locally. If it's at the beginning of development with hyperactive changes.