Questions tagged [continuous-integration]

Continuous integration (CI) is the building and automated testing of the full software product on a frequent schedule: at least once a day, often several times a day and sometimes as often as after every check in to the version control system.

Concept

Continuous integration is an important part of an agile software development process. Integration is an important step to detect quality issues, so if it is done frequently, problems will be detected earlier and fewer at a time. Hence, continuous integration can help to reduce the overall cost of the process. Although continuous integration could be automated with simple scripting, it is generally more advantageous to use tools built for this purpose, especially for complex projects with many modular parts.

Tools

One of the first tools to become popular for this purpose was CruiseControl. Now there are many such products, both open source and proprietary.

References

Martin Fowler has a good writeup of what it all means in Continuous Integration.

13768 questions
116
votes
12 answers

How can I auto increment the C# assembly version via our CI platform (Hudson)?

Myself and my group are horrendous at incrementing assembly version numbers and we frequently ship assemblies with 1.0.0.0 versions. Obviously, this causes a lot of headaches. We're getting a lot better with our practices via our CI platform and…
Allen Rice
  • 19,068
  • 14
  • 83
  • 115
114
votes
14 answers

"Pretty" Continuous Integration for Python

This is a slightly.. vain question, but BuildBot's output isn't particularly nice to look at.. For example, compared to.. phpUnderControl Jenkins Hudson CruiseControl.rb ..and others, BuildBot looks rather.. archaic I'm currently playing with…
dbr
  • 165,801
  • 69
  • 278
  • 343
113
votes
2 answers

Multiple Docker images in .gitlab-ci.yml

Here is my problem setup with GitLab and its integrated CI service. I have a current GitLab 8.1. and a gitlabci-multi-runner (0.6.2) with Docker support. After extending the ubuntu:precise image to include git and build-essentials (now named…
M.K. aka Grisu
  • 2,338
  • 5
  • 17
  • 32
113
votes
3 answers

Spread load evenly by using ‘H * * * *’ rather than ‘5 * * * *’

When setting up how Jenkins shoul pull changes from subversion I tried checked Poll SCM and set schedule to 5 * * * *, I get the following warning Spread load evenly by using ‘H * * * *’ rather than ‘5 * * * *’ I'm not sure what H means in this…
I'm busy coding
  • 1,648
  • 4
  • 13
  • 13
112
votes
9 answers

How do you run NUnit tests from Jenkins?

I'm looking to run automated NUnit tests for a C# application, nightly and on each commit to svn. Is this something that Jenkins-CI can do? Is there an online tutorial or how-to document which documents a similar setup that I can look at?
blueberryfields
  • 45,910
  • 28
  • 89
  • 168
112
votes
4 answers

How to run GitHub Actions workflow only if the pushed files are in a specific folder

I have a folder structure that looks something like this. - folder1 - file1 - *other files* - folder2 - file1 - *other files* - .gitignore - package.json - *other files* I want to run my GitHub Actions workflow on push, only if any of the…
TheComputerM
  • 1,281
  • 2
  • 5
  • 10
108
votes
3 answers

How to upgrade msbuild to C# 6?

I want to use C# 6 in my project (null propagation, other features). I've installed VS 2015 on my PC and it works brilliantly and builds test code like var user = new SingleUserModel(); //all model fields are null var test =…
Anna Prosvetova
  • 1,427
  • 2
  • 10
  • 14
107
votes
4 answers

maven :: run only single test in multi-module project

Is there any way to provide some command-line argument in order to skip all tests but one on some module? So I will not need to change pom.xml every time I will need to run another test? For example, I want to create build configuration on TeamCity,…
jdevelop
  • 12,176
  • 10
  • 56
  • 112
106
votes
18 answers

What is the purpose of a dedicated "Build Server"?

I haven't worked for very large organizations and I've never worked for a company that had a "Build Server". What is their purpose? Why aren't the developers building the project on their local machines, or are they? Are some projects so large that…
KingNestor
  • 65,976
  • 51
  • 121
  • 152
105
votes
12 answers

Best branching strategy when doing continuous integration?

What is the best branching strategy to use when you want to do continuous integration? Release Branching: develop on trunk, keep a branch for each release. Feature Branching: develop each feature in a separate branch, only merge once stable. Does…
KingNestor
  • 65,976
  • 51
  • 121
  • 152
102
votes
12 answers

Jenkins - passing variables between jobs?

I have two jobs in jenkins, both of which need the same parameter. How can I run the first job with a parameter so that when it triggers the second job, the same parameter is used?
Stefan Kendall
  • 66,414
  • 68
  • 253
  • 406
102
votes
1 answer

How do I shallow clone a repo on a specific branch?

How do I shallow clone a git repository, so that my clone contains only 1 history item, and starts on a specific branch? I know how to do a shallow clone: git clone --depth 1 https://path/to/myrepo.git but not start the clone on a specific branch.
100
votes
2 answers

Role of docker-in-docker (dind) service in gitlab ci

According to the official gitlab documentation, one way to enable docker build within ci pipelines, is to make use of the dind service (in terms of gitlab-ci services). However, as it is always the case with ci jobs running on docker executors, the…
pkaramol
  • 16,451
  • 43
  • 149
  • 324
100
votes
9 answers

Hudson or Teamcity for continuous integration?

We are a Java shop looking for a CI tool to use. Both Hudson and Teamcity seem to be free but Teamcity seems slicker and with more support. I was wondering why one would still use Hudson and if anyone could provide any argument for/against either?
pdeva
  • 43,605
  • 46
  • 133
  • 171
99
votes
8 answers

Setting dynamic scope variables in AngularJs - scope.

I have a string I have gotten from a routeParam or a directive attribute or whatever, and I want to create a variable on the scope based on this. So: $scope. = "something". However, if the string contains one or more dots I want to…
Erik Honn
  • 7,576
  • 5
  • 33
  • 42