Likelihood to Recommend GNU Make is a great tool for simple builds where language-specific options are not available, or to provide shortcuts for common commands (e.g., "make build" as shorthand for "go build ..." with a bunch of flags). However, it is complementary to other build systems. It does not replace them, which is perhaps one of its greatest strengths as well (works with existing ecosystem instead of trying to do everything). GMU Make it simple to get started with, and the philosophy of understanding how sources map to outputs, as well as the dependency graph, are beneficial.
Read full review Jenkins is a highly customizable CI/CD tool with excellent community support. One can use Jenkins to build and deploy monolith services to microservices with ease. It can handle multiple "builds" per agent simultaneously, but the process can be resource hungry, and you need some impressive specs server for that. With Jenkins, you can automate almost any task. Also, as it is an open source, we can save a load of money by not spending on enterprise CI/CD tools.
Read full review Pros Performance and accuracy of cross-module dependencies. Simple to write and easy to understand. Read full review Automated Builds: Jenkins is configured to monitor the version control system for new pull requests. Once a pull request is created, Jenkins automatically triggers a build process. It checks out the code, compiles it, and performs any necessary build steps specified in the configuration. Unit Testing: Jenkins runs the suite of unit tests defined for the project. These tests verify the functionality of individual components and catch any regressions or errors. If any unit tests fail, Jenkins marks the build as unsuccessful, and the developer is notified to fix the issues. Code Analysis: Jenkins integrates with code analysis tools like SonarQube or Checkstyle. It analyzes the code for quality, adherence to coding standards, and potential bugs or vulnerabilities. The results are reported back to the developer and the product review team for further inspection. Read full review Cons No dependency management tools (but there are no cross-platform tools of this type anyway) Tedious to do cross-compilation (Debug & Release builds, 32- and 64-bit builds, x86/ARM builds) Read full review The UI could be slightly better, it feels kind of like the 90s, but it works well. An easier way to filter jobs other than views on the dashboard. An easier way to read the console logs when tests do fail. Read full review Usability While the day to day use is very easy, the configuration and setting up of the system or new projects can be cumbersome.
Read full review Performance No, when we integrated this with GitHub, it becomes more easy and smart to manage and control our workforce. Our distributed workforce is now streamlined to a single bucket. All of our codes and production outputs are now automatically synced with all the workers. There are many cases when our in-house team makes changes in the release, our remote workers make another release with other environment variables. So it is better to get all of the work in control.
Read full review Support Rating In general, it is fair to say the support is sufficient although we do not deal with support directly. There are a lot of forum people chiming in with suggestions or recommendations of particular usage or issues we run into. Since it is open software, patch and fixes will be available from time to time. A lot of information is available in the web now for knowing GNU Make from learning, example, teaching, etc.
Read full review There is a large development community - but it is shifting as people move towards other tools. A lot of companies still use Jenkins and will build propriety tools, which doesn't help any of the open-source community. Jenkins has a lot of help and support online, but other, more modern, alternatives will have better support for newer tech.
Read full review Alternatives Considered I'm a full-stack developer that has used various build tools, including Maven,
Gradle , and NPM/yarn. For our C projects, I also investigated CMake and Ninja, but they seemed more difficult to learn and more tedious to work with. GNU Make is a single binary that can be easily downloaded, even for Windows under MingW32, is straightforward to learn, and works pretty well despite its age.
Read full review Overall, Jenkins is the easiest platform for someone who has no experience to come in and use effectively. We can get a junior engineer into Jenkins, give them access, and point them in the right direction with minimal hand-holding. The competing products I have used (TravisCI/
GitLab /Azure) provide other options but can obfuscate the process due to the lack of straightforward simplicity. In other areas (capability, power, customization), Jenkins keeps up with the competition and, in some areas, like customization, exceeds others.
Read full review Return on Investment Streamline the build based on a lot of existing component being done, reusable. Commonly understandable, therefore, rampup effort is small. Read full review Faster Time-to-Market: Jenkins automate the build, testing, and deployment process, enabling faster feedback and continuous improvement. Improved Quality: Jenkins automatically run unit tests and integration tests, ensuring that code changes meet the necessary quality standards. Cost Savings: Jenkins is an open-source tool that is free to use Read full review ScreenShots