For a python application, linting can be done with pylint or flake8, testing can be done with unittest, which comes with the standard python library, or pytest and building is not needed as python is an interpreted language.
Although Jenkins and GitHub Actions are popular, there are alternatives like Azure Pipelines, AWS CodePipeline, Travis CI, CircleCI, GoCD, GitLab. Most of these alternatives are cloud-based environments.
To decide to use a self-hosted or a cloud-based environment, a number of factors might be considered. For a business with very strict privacy policies, the team might have to use a self-hosted option which offers more privacy than cloud-based options. Budget and time might also be a key factor as self-hosted options require initial upfront investments in both money and time to set up whereas cloud-based environments can be cheaper and faster to set up. If there are specific tasks that need to be performed, self-hosted options provide more customisability whereas cloud-based options may not allow users to do so as well as limiting resources for said tasks. In terms of our hypothetical team, they may not have the time and resources for a self-hosted option so the cloud-based solution might be m more appropriate.