TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

What is CI and why use it?

55 pointsby smathieualmost 11 years ago

8 comments

jipiboilyalmost 11 years ago
JP, author of the post here - let me know if you have any additions / questions! :)
评论 #8049423 未加载
评论 #8049269 未加载
评论 #8049066 未加载
rubiquityalmost 11 years ago
Thanks for the article. I apologize in advance if this is a hijack, but I&#x27;ve really been trying to understand the craze of CI and feel this is a good place to hopefully get answers.<p>CI is something I have a constant struggle with. I primarily work in small teams and I tend to work with other developers that are diligent about running tests and know that &quot;if the tests aren&#x27;t green when I merge master into my topic branch, I don&#x27;t push to master.&quot;<p>When I did work on a larger team, maybe CI was useful for the other programmers that weren&#x27;t as diligent. Though, the CI box eventually got quite slow and you didn&#x27;t get feedback until 15 minutes later (this was Jenkins) versus 2-3 minutes locally.<p>Unless I&#x27;m missing something, I guess when you distill CI down to what it does you get:<p>- Runs your test suite<p>- Lets you know if a failure happens<p>That&#x27;s not a ton of value in my eyes, which is why I assume all of these hosted CI solutions are now also doing CD upon successful builds. You could also get CD without CI by using something like git hooks that kick off deploy scripts after certain events.<p>GitHub showing the status of your CI on the PR screen is cool, but while I do use GitHub, I mostly use GitHub as a code repository. The most I do in the web UI is clone repos and open pull requests. If you merge a branch into master that correlates to an open PR, GitHub automatically closes the PR for you.<p>I know we&#x27;re in the era of &quot;Automate ALL the things!&quot; and I&#x27;m good about that, but typing `rake|make|etc` into my console isn&#x27;t a huge pain point in my life right now. Is CI a luxury we&#x27;ve been brainwashed to love by the programming hegemony?<p>Someone please let me know what I&#x27;m missing.
评论 #8049633 未加载
评论 #8049475 未加载
评论 #8049526 未加载
评论 #8049650 未加载
评论 #8049738 未加载
评论 #8049563 未加载
评论 #8052051 未加载
评论 #8049473 未加载
PhilipAalmost 11 years ago
The hosted CI solutions like CircleCI looks good, but letting them control my code and do the deployment, really requires quite a bit of trust. It is another chain who can have a security breach, which could let intruders have access to my code.
评论 #8049334 未加载
评论 #8050050 未加载
akurilinalmost 11 years ago
1. Is there an easy way of integrating an existing large ansible project with CI to use it for deployment? 2. With continuous deployment, how do you coordinate multiple repositories being changed all at once and potentially numerous migrations that need to be done beforehand? e.g. say you&#x27;re changing the schema and the web API and all of its clients. Can you CI the entire system at once rather than one git repo at a time?
评论 #8050081 未加载
评论 #8049476 未加载
Anjinalmost 11 years ago
If you are using a CI, you might as well also use something like <a href="http://www.coveralls.io" rel="nofollow">http:&#x2F;&#x2F;www.coveralls.io</a> to get history and statistics on your source code&#x27;s test coverage.
评论 #8049459 未加载
Dewiealmost 11 years ago
It&#x27;s nice to send a pull request with only documentation changes and then having Travis CI fail.
评论 #8049326 未加载
sergiotapiaalmost 11 years ago
PSA: CodeShip just today announced free plans for up to 5 private repositories. Excellent and more than enough for most startups. Get started with CI -today- it&#x27;s worth it.<p><a href="https://www.codeship.io/" rel="nofollow">https:&#x2F;&#x2F;www.codeship.io&#x2F;</a>
评论 #8049446 未加载
joshpadnickalmost 11 years ago
In my opinion, this book[1] is the authority on continuous integration and continuous deployment.<p>Continuous Integration is fundamentally about creating a tight feedback loop between your developers and your code. When you program in your IDE, the instant you write uncompilable code, you get red squigglies, so you&#x27;re getting an instant feedback loop on something you just wrote.<p>CI is the same thing, but at a higher level. The instant you commit your code, some automated process should take over and start analyzing &#x2F; compiling &#x2F; testing your code and look for things to give you feedback on. If your code doesn&#x27;t even compile -- one of the first milestones of CI, you should know that immediately.<p>Since you just committed it, making the fix is easy. This is compared to a developer who downloads your code the next day, can&#x27;t compile, comes and bugs you about it, etc...<p>As far as some real world use cases, we just setup Jenkins for a new Java project we&#x27;re writing. It does an automated build test that compiles and executes all unit tests automatically on any commit to GitHub on any branch. It&#x27;s a little slower than I like -- our still growing app takes a full 3 minutes to compile and give feedback.<p>But, it&#x27;s been great. For example, the GitHub client on Mac OS X doesn&#x27;t recognize when I change uppercase letters to lowercase and vice versa, so while my local compiles worked fine, my repo actually had a failing build. Once I committed, I got an automated email within 5 minutes telling me the build failed, and I fixed it. Without CI, I may not have found about that issue for weeks, making the change more difficult.<p>For production deployment, we&#x27;re still in alpha, but we&#x27;ve got a 1-button push to deploy. Again, slower than it should be -- in this case 5 minutes -- but the automation is awesome and makes doing any deployment -- whether hot fixes or new releases that much more pleasant.<p>Regarding the performance, I see it as a win just to get anything automated, however slow it may be. Because once you&#x27;re there, you can always look for ways to optimize it. For example, our current build process, re-downloads dependencies every single time. This could clearly be cached. When it&#x27;s a priority for us, we&#x27;ll do it.<p>[1] <a href="http://www.amazon.com/dp/0321601912?tag=contindelive-20" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;0321601912?tag=contindelive-20</a>
评论 #8049734 未加载