I'm trying to find if they offer or plan to offer these features:<p>1. Caching. CircleCI and Travis cache intermediate build artifacts (e.g., virtualenv in python) to reduce build time.<p>2. Github pull request integration (red cross on pull requests if the build fails).<p>3. Chat integration. Sending a message to slack or hipchat when the build fails.<p>4. SSH into build container. Very handy for rare but difficult to locally reproduce build bugs.<p>Interesting offer though. We found that we would pay less than 5$ a month for our build needs and they would run concurrently.
How many different CI workflow tools are on AWS these days? How do I know which one to pick? I really wish Amazon would spend some time building comparison guides for their services. Each one feels very silo'd off from each other and the crossover in functionality seems very high.
I'm excited about what this means for Lambda. Building Lambda packages has always been a pain because much of the time it needs to be built on Amazon Linux to work, meaning most (all?) CI SaaS solutions are out the window. I assume CodeBuild will run Amazon Linux and CodePipeline integrates with Lambda, so this should make setting up continuous deployment with Lambda much easier.
When I saw this I got super excited because I thought it was going to be "per-minute low-latency distcc hosts" which was probably set up by having a ton of common toolchains ready to go at all times, and my big questions were "did they bother to support MinGW (easy)" and "do they have a reasonable story for iOS (though I can't imagine they have armv6 working right)", but while they got my hopes up when they said one could even upload custom toolchains I realized that didn't make much sense and a few paragraphs later I got the disappointing news that this is just some extremely thin wrapper over ECS that is limited to doing builds on single computers which max out at 8 vCPU (why?!). I mean, I guess this makes CI slightly more accessible to some people, but it isn't anything terribly exciting and is mostly going to help people with extremely small projects: this isn't going to scale up to the kinds of builds where you'd expect a service billing itself on scalability to be most valuable.<p>...Except for this part: <i>CloudBuild has per-minute billing</i>!! This is one of the major complaints people have about EC2 (and all the services Amazon builds over it), and is one of the major downsides of using it over Google's Compute Engine. If you have any kind of task that can possibly be thought of as a "build"--one which can be expressed as a container of software configured to access some external asset as input and which generates a concrete output "artifact" (and maybe even not, right? to support some silly things people do in their builds like "check out code from npm", you likely get network access, and your build output could always be an empty file)--this now seems like a depressingly hilarious way to trick Amazon's infrastructure into giving you per-minute billing for random tasks which take less than 20 minutes to run (important limit, as they are charging a 3x overhead vs the on demand price for an equivalent instance: for 8 vCPU / 15 GB instance, a c4.2xlarge costs $0.419 per hour and a build.general1.large costs $.02 per minute, which would be $1.20 per hour).<p>In other words: I will argue that this service really can and maybe should just be looked at as a different pricing model for ECS, to support any "small" task (not just building code): if it takes less than 20 minutes and doesn't require a massive computer, CodeBuild is not only cheaper but probably easier to use (as it already models the problem in terms of a task queue, so you don't have to do that part either).
This is really exciting. The lack of a build service has been apparent for a while: <a href="https://convox.com/blog/aws-missing-build-service/" rel="nofollow">https://convox.com/blog/aws-missing-build-service/</a><p>I wrote up how we plan to use this in the Convox platform here: <a href="https://convox.com/blog/codebuild/" rel="nofollow">https://convox.com/blog/codebuild/</a><p>Practically speaking, we're working through PCI compliance. Getting builds off of production services and root-enabled docker daemons is a huge win.
As someone who has had to shop around and try out a bunch of continuous integration services (Travis, CircleCI, Snap, Solano, to name a few), this looks pretty interesting! We've stayed away from managing our own CI infrastructure but this could be a good (and cheaper) solution. It doesn't seem to actually be available yet, but it'll be worth a look.
As it sounds like it's running inside Docker itself, I'd like to know if this supports "Docker in Docker". My requirement is not strictly DinD however I run multiple containers during CI (Postgres, node, test containers, etc). Possible via different approaches in CircleCI, Shippable and SemaphoreCI. I don't actually build any containers to save.
What's frustrating is if you go to the aws reinvent page they tell you a lot except the dates of the conference!!! <a href="https://reinvent.awsevents.com/" rel="nofollow">https://reinvent.awsevents.com/</a> I was wondering why all these aws announcements were here.
At any time someone can show up to eat your lunch but if you're developing software for operations or developers it seems like a scary space to be in. AWS has a huge advantage by being able to simply add a service to their existing catalog.
Gave it a try, seems to be kinda slow building docker images. An image that take 2 minutes in my machine is taking around 10 minutes in CodeBuild.
The build seems to freeze a little between docker build steps :<p>--- Example 1 ---<p>[Container] 2016/12/01 22:39:59 Step 9 : EXPOSE 3000<p>[Container] 2016/12/01 22:40:31 ---> Running in 1c6e3a4dbec8<p>[Container] 2016/12/01 22:40:45 ---> 602aa4bc97ac<p>-----------------<p>--- Example 2 ---<p>[Container] 2016/12/01 22:36:00 Step 4 : WORKDIR /src<p>[Container] 2016/12/01 22:36:32 ---> Running in 98800352e6c2<p>[Container] 2016/12/01 22:36:45 ---> b437afe2a1c5<p>-----------------<p>Not sure if this caused by the fact its a docker inside docker implementation.
This sounds a bit like BuildKite which has worked out pretty well for us! They provide an elastic AWS CI environment that you run in your own AWS account, and scales up/down as builds are queued up.
I really wish AWS CodeBuild supported .net\C# as a preconfigured environment. Hopefully .net is not too far down on their priority list...right now we are using Jenkins.
Seems pretty nice. A few things I'd like to see:<p>1. We should be able to configure this for a few/all branches (including PRs) and have conditional build tasks based on branch.<p>2. We need be able to access resources inside a VPC.<p>3. Turnkey chat integrations would be nice, but it's not a big deal to just curl.<p>4. We need a way to execute actions on failure.
FAQ says this. Is there any examples on setting it up? It isn't obvious from inside CodePipeline.<p>Yes. The CodePipeline Plugin for Jenkins can be used to integrate CodeBuild into Jenkins jobs. The build jobs are sent to CodeBuild, eliminating the need for provisioning and managing the Jenkins worker nodes.