Good lightweighted Continous integration tool to use with github? - github

I am developing a small python web service with bunch of analytical codes and searching for a lightweighted, easy-use but all-around Continuous Integration tool to use together with github.
I push my code onto github and hope that by every pushing continuous integration can run tests and check the integreity
some recommended tools from github website https://github.com/integrations
like cloudBees, circleci etc.
Which kinds of CI tools is best for me at this moment ? thanks a lot
And would be kind if you could give some tips/good tutorials on coutinuous workflow(development and deployment) with github and docker

Like Jake said I would say that a cloud based tool like SnapCI, Circle or Travis would work well for you as you are already hosting your source in the cloud. If you are working on a public repo many of these tools are free.
In order to help with Docker and Github you'd need to be more specific about your needs.

Related

What are the differences in using GitHub or GitLab for CI/CD?

I have a software project which is currently hosted on BitBucket. I would like to implement a CI/CD pipeline which would have to run on local agents for build/test/deploy. The runners would also have to be compatibile with Windows 7/10 (x86/x64) and Linux (x86/x64/arm64/armv7). I am pretty new to DevOps, but after a thorough search, I came up with 2 options: GitHub and GitLab. Can you present to me which one would be better, exposing some advantages/disadvantages for each one? Thanks a lot
My recommendation would be you go with GitLab because of some of the following reasons.
GitLab CI has been in the market for a much longer time than GitHub actions that was announced in Nov of 2019 you can see some of the feature comparisons on GitLab blog here
When you are getting started It is much easier to navigate the GitLab GUI to configure all the tools that you need for DevOps in comparison to GitHub's somewhat difficult to navigate GUI due to the number of other tools that are available on GitHub
In addition GitLab is primarily focused on improving DevOps and as a result, they have integrated a couple of features over time in line with making the whole entire DevOps process much smoother than GitHub which just jumped started out in 2019.
Also there are a bunch of templates available for you to get started on GitLab which is not the case in GitHub.Plus these templates are in a wide range of languages which I am sure to cover your project requirements
Ease of access of CI within GitLab well in addition to having an easy to navigate GUI GitLab has all the tools necessary for your DevOps bundled in one location so every single DevOps feature that you will need will be accessible in this one place and in addition to that they do have a YAML template available for you that can help you get started quickly.
Finally there are way more features within GitLab majorly because it has been in the market since 2012 or 2011 compared to GitHub actions of 2019
There are however some major similarities that I would also like to point out which I believe could make your transition easier or just in case you want to try out both tools to judge for yourself.
Both GitHub Actions and GitLab Ci are build-in tools.
Both GitHub and GitLab use the same commands so there will not be a learning curve for you in terms of managing and collaborating changes on your project.

Is it possible GitLab do only delivery (or deploy) the source codes manually to remote server?

I started studying GitLab for my boss's order.
I found GitLab supports built-in CI/CD features.
But I don't want CI feature. Only to deliver code manually.
...and the concept of CI/CD is too difficult to me.
Of course I am going to search this topic continuously,
but also worried that it is impossible only to deliver code from GitLab Web repository to remote server.
Anyone who know this question?
Please help me.
Gitlab is one of the most flexible platforms to code versioning and CI/CD
almost everything is possible, but of course some things needs more expertise than other
In your case, delivering code manually will work without any problem.
But you need to understand more about git concepts
look at this article https://thepilcrow.net/explaining-basic-concepts-git-and-github/
forget the differences between github and gitlab now.... focus on understanding git (gitlab is just an inferface)
After that, when you start to study ci/cd you will discover the power of gitlab :D

Monitoring and Evaluation in github projects

We use GitHub Project to manage as it is simple and easy to integrate with git comments. I couldn't find a way to analyze the performance of the jobs? How can we get reports related to the monitoring and evaluation of the project?
The Project management inside GitHub is not catering to the evaluation of the project. You can use third-party project management applications that can be integrated with GitHub seamlessly. One example is http://hubstaff.com

SonarQube and Github, Travis CI

Is there any way to programmatically check say, using the GitHub API or some API for Travis CI, if a particular project on GitHub or Travis CI uses SonarQube?
Also apart from SonarQube what other program analysis tools do people usually use?
Neither GitHub API nor Travis CI API will be able to provide you with such information - simply because code analysis tools/services are third-party systems that are not built-in features of GitHub or Travis CI.
If you want to "see how many open source projects on GitHub use static program analysis tools", then you would have to browse the source code of each repository to discover some facts that might give you this information (like for instance looking into the .travis.yml file). But because there's no built-in/standard feature on that topic, this would be extremely difficult to correctly achieve this goal IMO.

Deploy Mercurial with SFTP/SSH

Currently I am using sourcetree to manage my repo's. I've read about using different branches for 3 stages of website development. I've seen sites like deployhq.com and beanstalkapp.com. I am curious is there a "free" way to deploy/rollback and publish via sftp/shh to my web servers both staging and live production for each of my repo's. I need a way for junior level developers to easily be able to do it too, be great if there was a review process. If there is no free method, what;s the best paid method out there. I also use bitbucket.org to store my repos.
Thanks so much
You could use a lightweight deployment tool such as Kwatee (self-promotion). Kwatee is free and can deploy any files via a web interface or python scripts (also ant/maven if you use java). All you'd have to do is to automate the check-out of your branch and then trigger the deploy command in kwatee which will use ssh/scp or telnet/ftp behind the scenes to update your deployment (only changes will be deployed).