The Shippable Blog

Pushing to JFrog Artifactory after CI

We recently added  a native integration with JFrog's popular artifact repository, Artifactory. You can now add your JFrog credentials to your Shippable account and then perform the following actions as part of your CI/CD workflow:

  • Pull dependencies from Artifactory
  • Push files, versioned packages, or artifacts to Artifactory
  • Trigger your continuous delivery pipelines if a file/package stored in your Artifactory account changes

JFrog's Artifactory is one of the most advaced repository managers available today. It is open source and especially popular with Java app developers and also Enterprises that want to self host a repository manager for their projects.You can learn more about Artifactory here.

Let us see how this works with a sample project which builds the sample code and creates a .war file which is then pushed to Artifactory. Follow the step by step directions below to set up CI for the project and push to Artifactory.

CI/CD enhancements: JaCoCo, JFrog Artifactory, and more

Happy 2017! As the new year kicks in, we wanted to start a monthly blog that lets you know the new features we've launched in the last month. No more trees (aka features) falling silently in the forest... they'll make a big THUDDDDD in this monthly series. So without further ado.... TA DA!

Continuous Integration

Custom variables for manual builds: You can now inject custom environment variables while triggering a manual build through the UI. This is great while debugging when you don't want to make fake commits just to trigger builds with different env values. 

Integrated JaCoCo code coverage reportsYou can visualize rich reports within the Shippable UI and drill down to see which llnes of code are not covered by your tests. 

7 things to consider while moving to a microservices architecture

In part I of my four part blog series on Microservices, I explained what microservices are and the benefits you will see by adopting this architecture.

However, life is all about tradeoffs. In part II of this series, I will go over the things you need to consider while moving to microservices, as well as some challenges that crop up even when you do everything right.

Microservices for greenfield projects

Anytime your team develops a new application from scratch, it feels great not to inherit technical debt and be locked into outdated decisions made years ago.  Most teams developing new apps today would probably choose to containerize them using Docker and adopt microservices architecture for speed and agility.

Why you should adopt a microservices architecture

Microservices are the new cool kids in tech town and everyone's trying to join the party. After all, microservices are considered the panacea that brings speed, agility, and innovation to software powered businesses.

For the most part, this is true. In Part I of my four blog series, we will take a look at how software architecture has evolved over the years and why you should consider adopting microservices.

Provisioning AWS infrastructure with Terraform

Provisioning and updating infrastructure is a the first step in setting up your development, beta, or production environments. Hasicorp's Terraform format is fast becoming very popular for this use case.  We love Terraform at Shippable due to its easy declarative syntax, similar to our pipelines syntax. Other advantages are: 

  • Infrastructure as Code: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used.

  • Execution Plans: Terraform has a "planning" step where it generates anexecution plan. The execution plan shows what Terraform will do when you call apply. This lets you avoid any surprises when Terraform manipulates infrastructure.

  • Resource Graph: Terraform builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, Terraform builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure.

  • Change Automation: Complex changesets can be applied to your infrastructure with minimal human interaction. With the previously mentioned execution plan and resource graph, you know exactly what Terraform will change and in what order, avoiding many possible human errors.

At Shippable, we use Terraform to provision all our environments and automate the provisioning using our Pipelines feature. If you're interested in taking a look at our terraform scripts and pipelines config, we have made our repositories public so you can check them out:  

Interested in trying it yourself? The following example walks you through a sample project that provisions two t2.micro instances on AWS. We've kept it simple for easy understanding, but you can also automate provisioning of complex environments as seen in our beta infra scripts above.