Customizing the build process for dependent projects and multiple developers

I am new to building automation and continuous integration, and I am working on setting up the build / server process for a small group of developers. We use SVN server, CMake and Jenkins. The source language is C ++.

Let's say we have two projects: library(dll) and executable. executablelinks to library, and so executableyou need .lib and .h files from library. To run, executableyou will need .dll (and possibly debug symbol files) for library.

When building all of this, simple enough, you get the last source from the repository and build library, then executable.

However, we have several developers, and each developer usually works on one project at a time. Our CMake scripts allow you to choose which projects to build, so it Johncan have an installation that creates only executable, but Bobcreates only library. Providing this is not an option.

So if you Bobmake changes to libraryand fix the source code, you Johnshould get the compiled .lib and .dll files (because it does not compile library).

Right now, the binaries are in svn. During each compilation, CMake copies src/binin build/binas a stage of preliminary compilation, then all projects are selected (replacing the corresponding binary code in build/bin) and, finally, copy CMake build/binin src/bin.

, Bob , , , John , .

, . - ? ( 4 12 , - , , , - , .)

. , :

, ​​ Artifactory Nexus , ,

CMake . . Nexus, , CMake . , , .

, , , CMake-foo, , , , , , , .

+3
2

, , . , , , . , - , , , .

, Jenkins . Jenkins (, SVN Publisher), ,

, Jenkins . , . , , .

+2

, , , , . , , , CI, , .

, Jenkins Job, , , - . , SVN, :

  • CMake
  • - ( , ?)
  • CMake
  • - ( , ?)
  • .

, , , . CI.

[BTW, , , , SVN. , , . . SCM, , ( ) .]

, . , , , , . CI, , . 8 , - Jenkins, , , " , , ?"

+1

All Articles