Whatever the project you are working on, whatever the programming language, using a Makefile to handle common tasks is a great idea.
Makefiles are great at :
- Mask the complexity of a task;
- Handle multiple tasks;
- Help contributors to start with your project;
- Manage configuration using env var;
- Define a common interface / standard between projects;
- Abstract the underlying technology.
For all those reasons,
make is a perfect fit with any CI/CD chain. Using a Makefile helps you define a simple and common interface usable whatever the CI/CD chain you plan to use. The only thing you will have to worry about is that your CI/CD chain tool will call the right target.
And the job is done. It could be done with Travis. It could be done with Jenkins. The only thing that matters is the interface defined by your targets.