I have never been a huge fan of CI. I've always considered it a potential "Concrete Galosh"[0], and, in my case, the fox is usually not worth the chase; but I don't work in the type of environment that usually necessitates CI.
> As I wrote in Your Integration Tests are Too Long, developers become reliant on CI and won't run the tests until merge-time.
That's a big issue. I think that testing is very important, and integration testing should be done from the git-go. Anything that discourages early integration testing, is a problem.
Recently, I was invited to submit a PR to a fairly sizable project (I was the original author, but have not had much to do with it for the last three years or so).
I declined, because, in order to make the PR, I would have had to set up a Docker container, Composer, Jenkins, xdebug, PHPUnit, etc., on my computer, in order to run the full integration tests (I won't submit a PR without running the tests, as that's just rude).
For someone that is a regular backend engineer, like most of the team working on the system, that's no big deal. For me, it's a fairly big deal (I write frontend native Swift stuff, and don't have infrastructure on my machine for that kind of work).
That means that they will have to do without a fairly useful extension that I could have added.
> As I wrote in Your Integration Tests are Too Long, developers become reliant on CI and won't run the tests until merge-time.
That's a big issue. I think that testing is very important, and integration testing should be done from the git-go. Anything that discourages early integration testing, is a problem.
Recently, I was invited to submit a PR to a fairly sizable project (I was the original author, but have not had much to do with it for the last three years or so).
I declined, because, in order to make the PR, I would have had to set up a Docker container, Composer, Jenkins, xdebug, PHPUnit, etc., on my computer, in order to run the full integration tests (I won't submit a PR without running the tests, as that's just rude).
For someone that is a regular backend engineer, like most of the team working on the system, that's no big deal. For me, it's a fairly big deal (I write frontend native Swift stuff, and don't have infrastructure on my machine for that kind of work).
That means that they will have to do without a fairly useful extension that I could have added.
[0] https://littlegreenviper.com/miscellany/concrete-galoshes/