What are the tools which you use for CI/CD at work?

At my day-job workplace we're primarily building Windows client/server software. The codebase is stored in SVN. We have a Jenkins installation and several dedicated build machines. SVN commit hooks trigger a Jenkins CI build.

In my freelance work, code is stored on BitBucket (git). Half of my work is Windows desktop/service work that does not use CI. The other half of my work, which is relevant to the question, is the JavaScript/TypeScript work.

Each repo is hooked up to CircleCI (which is free if your usage is low enough). The builds are controlled through a circle.yml file at the root of each repository. And then each repo also has deploy scripts written in JavaScript (only because I'm more comfortable writing JS than bash shell scripts).

The deploy scripts are invoked by CircleCI after a successful build. They zip the ./dist directory and use the AWS SDK to push the application package to Elastic Beanstalk or Lambda, depending on the project.

The build times are okay, I suppose. I don't really have anything to compare to. I believe they cache things like npm modules to speed up the build. Often the bottleneck is deploying to AWS itself (my staging environment is on a micro instance). My Lambda project builds are 4x faster... but they're going from TypeScript directly to ES5 whereas my Beanstalk project builds are TypeScript to ES6 to ES5 via Babel and the code base is much bigger (plus many more dependencies).

The build machines are supplied by CircleCI. It's all in the cloud.

I'm interested in getting into Amazon's Code Pipeline and Code Deploy stuff... but too many other things on my plate right now. Plus, I find that Amazon's platform and documentation isn't very approachable.

Write a reply...

Philip Davis

@pdavis

Software developer

Never miss an answer from Philip Davis,
when you sign up for Hashnode. Learn more

loading ...