Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 19:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.
×Announced in this blog, this holiday season we’re celebrating all things CI/CD and between now and the end of 2019 we’ll be showcasing content, use cases, feature announcements and more.
One feature we added to help teams build and automate their CI/CD pipelines in Bitbucket Cloud were Pipes. With over supported 50 pipes available that let you test, deploy, scan, or manage artifacts with many of the industry’s leading vendors, it’s trivial to set up the external services your team uses across your pipelines and repositories. Best of all, these supported pipes are updated and maintained by the author meaning you never have to worry about updating or re-configuring them yourself.
But there’s no one-size-fits-all approach to software development and developers have their own preferences in terms of how they build software and the tools they want to use. As such we’ve made it easy to create your own custom pipes, allowing teams the freedom to automate and integrate their CI/CD pipeline to meet their specific needs and requirements.
Creating a custom pipe
Creating a custom pipe simplifies the configuration of your CI/CD pipeline and makes re-use easy and efficient. A custom pipe would be useful in situations where:
The same action is performed in several steps of your pipeline
Similar tasks are run in multiple repositories
An action being performed needs dependencies that your main pipeline doesn't have
Connecting with an external service to make it easier to use in pipelines
Full instructions on how to create a custom pipe can be found here, and below are guides and examples of custom pipes you can learn and gain inspiration from:
Share your custom pipe and win!
In the spirit of giving this holiday season we want you to tell us about the custom pipes you’ve built! Simply share your pipe repository with us in a comment below, along with a description of what your pipe does and how it helps your CI/CD workflow. You have until 29 February, 2020 to share your custom pipe and we’ll randomly choose a few submissions to win a limited edition Bitbucket bomber jacket.
Best of luck!
@Radek Antoniuk / @rgruber / @Artem_Rys / @Tamara_Weber / @Jared Bates
Thanks for your patience while we've sorted out some hiccups to announce a winner and give out prizes. While we were going to choose one winner, I feel it only made sense to give the prize out to all of you given the circumstances and to show our appreciation for your participation and of course your patience.
With that, if you could send me an email to kelvin@atlassian.com so I can send through next steps that would be great.
Congratulations to all of you and I look forward to seeing photos of you with your jackets in the not-too-distant future!
@Radek Antoniuk @rgruber yes my apologies here, we've run into some procurement issues but hope to have a solution in the coming days. At that point I'll let you all know the winners and the process to obtain the prize.
I appreciate your patience here and apologies again for the delay!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Radek Antoniuk I'm wondering too. I contacted @Kelvin Yap a while ago. He wrote that he will be "announcing the winners on the post early next week". But that was a couple of weeks ago already. My best guess is that the current worldwide situation messed up their schedule. I hope that they do announce the winners eventually. It's strange times right now after all.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I'm a big Telegram messenger fan. We also use Telegram groups at work where CI/CD pipelines posts information about new builds or successful builds or test runs.
So I built a pipe for Bitbucket which can be added to any pipeline and allows us to send a message via a Telegram bot to a Telegram group or channel.
You can find my pipe here:
https://bitbucket.org/TamaraWeber/telegram-pipe/
The documentation of the pipe contains all the needed information on how to get hold of the Telegram bot and how to connect the pipe to the bot. From there it's as simple as adding the pipe at whatever step of your CI/CD pipeline and define the message which you want to send out at that point of your pipeline.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I created a pipe to deploy my company's applications to AWS using the new AWS CDK for infrastructure as code.
You can find it here: https://bitbucket.org/sightsoundtheatres/aws-cdk-deploy/
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For those of you interested in my "ibm-k8s-pipe", I created a small show-case repo. It shows how I use my custom pipe in the same way as I use it in my real private repos.
You can see how the "deployment.yaml" in my Kubernetes deployments typically looks like. And you can see the full pipeline I use to build the project, create a docker image out of it and finally run my custom pipe to roll-out the new docker image to my Kubernetes cluster.
Check out the show-case at:
https://bitbucket.org/rgruber/ibm-k8s-pipe-showcase/src/master/
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@dunghoang103 you can access it here now. We aren't maintaining it anymore: https://bitbucket.org/SSJaredBates/aws-cdk-deploy
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
i can't access the link anymore
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Kevin and congrats to everyone!
Hopefully this will be a nice sweet add-on to our quarantine time. looking forward for the photos from our the world!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Kelvin Yap could you share any photos of the contest winners?
I'm so curious how those fancy BitBucket jackets present in day light!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I created a simple Tomcat Deployment Pipe that helps you deploy your WAR applications using Tomcat Manager directly from the BitBucket Pipeline.
It is already used in my current deployments and should work fine with Tomcat 7+, but if you find any bugs or experience any issues, don't hesitate to report them!
You can find all the details here:
https://bitbucket.org/cloudfolksio/bitbucket-tomcat-deploy-pipe
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I’m running a couple of small Spring Boot based projects in a Kubernetes cluster on IBM cloud. Until now I was always building the docker images locally with a small shell script. Pushed them to Docker Hub and also triggered a rollout on my Kubernetes cluster manually.
I’m following your #12daysofCICD on Twitter and already learned a lot about the Pipelines feature of Bitbucket. This contest here got me thinking that I could invest some time to convert my helper-scripts that I run locally into a custom pipe.
So here it is: https://bitbucket.org/rgruber/ibm-k8s-pipe
I used a base docker image which IBM provides that already contains the IBM cloud tools as well as kubectl. So my pipe is essentially a bash script which uses the IBM cloud tools to log in and retrieve the KUBECONFIG. Then kubectl is used to trigger a rollout, which will fetch the latest docker image used by the deployment and restart the pods associated to it.
So the idea is, that your project has a pipeline with a couple of steps. First would be the maven build. Then the docker build and push to Docker Hub. And the final step would be my new pipe, which would trigger the rollout of new image from Docker Hub to the Kubernetes cluster.
The pipe is fully documented, so please do not hesitate to look at https://bitbucket.org/rgruber/ibm-k8s-pipe/src/master/README.md for more details.
I had a lot of fun building this custom pipe and learning a lot about Bitbucket Pipelines along the way. Hope you enter me into the contest for winning one of these awesome looking Bitbucket jackets! I would be thrilled to win a jacket and of course I’m looking forward for more #12daysofCICD.
Happy Holidays to all of you at Atlassian!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.