Hi Team,
I am currently using BitBucket Git as source version control and Teamcity for ASP.Net applications to build and deploy .
As Atlassian newly introduced BitBucket Pipeline where we can build and deploy at one place, planning to use BitBucket Pipeline instead.
Can anyone please give the information for the below mentioned
benefits and drawbacks of using bitbucket pipepline instead of Teamcity for application build
Number of license required for using pipeline
What are the changes in build/branch/deployment process compared to Teamcity
Can we integrate pipeline with selenium tests
Thanks
Ramu
Community moderators have prevented the ability to post new answers.
Hey Ramu,
I used to be the Product Manager for Bamboo which is very similar to Team City and I now work on Bitbucket Pipelines.
I'd need to know what features of TeamCity you're using to understand if Pipelines is a good fit for you today as we don't have yet scheduled and manual triggers. We plan on adding those features but today we're focused on Continuous Delivery and we run a pipeline for every push in your repository. Finally if you're building a .NET core application on Linux it will be supported but you cannot yet run pipelines in Windows environment.
Please find my answers below for your questions.
(1) Why change?
For reference here's an example of YML configuration for Bitbucket Pipelines
# This is a sample build configuration for Javascript. # Only use spaces to indent your .yml configuration. # ----- # You can specify a custom docker image from Docker Hub as your build environment. image: node:4.6.0 pipelines: default: - step: script: # Modify the commands below to build your repository. - npm install - npm test branches: staging: - step: script: # Modify the commands below to build your repository. - npm install - npm test - export HEROKU_APP_NAME=$STAGING_APP #$STAGING_APP is a Pipelines env variable. - ./heroku_deploy.sh production: - step: script: # Modify the commands below to build your repository. - npm install - npm test - export HEROKU_APP_NAME=$PROD_APP #$PROD_APP is a Pipelines env variable. - ./heroku_deploy.sh
(2) Benefits and drawbacks of building your application
In terms of current limitations we do not yet support building Windows and iOS environments. We also do not manage artifacts but we have recipes to help you send them to S3 or your preferred artifact manager.
(3) Licensing
Bitbucket Pipelines is free until the end of the year. When pricing kicks in it will be based on usage and the price will be $10/1,000 minutes. You get unlimited concurrency and you only pay for what you use by pack of 1,000 minute so that you don't need to commit for an entire year at a fixed pricing. If your team happens to use less CI in a give month then this will be reflected in your bill.
You can find more information in our pricing page.
(4) Changes in build/branch/deployment process compared to TeamCity
The main difference between Pipelines and TeamCity is that in Pipelines there's a direct relationship between a repository and its pipelines. We have a natural flow approach where each commits goes through a pipeline, gets build and tested, and then deployed if necessary.
On TeamCity the approach is more project-centric where the user has to define what repositories go into a project and how to build and deploy all repositories together.
Our approach stems from our experience and the transition to microservices that we're seeing in Software. Each repository needs to be able to be built and deployed by itself and the best practice is to version the pipeline definition with the code itself.
(5) Selenium support
As Philip said, you can run Selenium tests.
Let me know if you have any other question.
Hi @Sten Pittet, when you said "you can run Selenium tests", does that mean that any automated tests should be residing inside the solution where the code of the web app is in?
What if you have separate solution that have your UI tests/perf tests/pvt tests (and any other tests), can this be "added/called" in your pipeline too?
And what about if your selenium tests have built-in reporting, like allure or extentreport, same as TeamCity, how do we show the dashboard to users of the red and greens of the test and the bdd steps and screenshots where it fails? Is this where Bamboo comes in? :)
Then when you run the selenium tests, do they run within the same machine the bitbucket server/agent is installed and would actually launch the browser and do all this clicks/sendkeys/etc?
Sorry, I am also a bit confused transitioning from a Bitbucket repo just for source control then TeamCity for CI then Octopus for CD... Looks like Bitbucket pipeline offers all these CI/CD just using 1 tool, i.e. Atlassian.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Ramu,
I haven't used TeamCity, so I can't give direct comparisons. But let me see if I can help.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hodder
Thanks for the Reply. This is helpful ,however can i get more info on benefits over team city?
As you mentioned "The main advantage of Bitbucket Pipelines is that your CI/CD is hosted with your source code" - this is also possibe in Teamcity
"you can quickly check to see what changed in the source code that may have broken your builds" - also this as well is possible with team city
See if you can help in getting the major benefits upon temacity
Thanks
Ramu
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi- I am still waiting if i would be helped by getting more information from this discussion
Thanks
Ramesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Ramesh,
Sorry, I missed your previous message.
I haven't used TeamCity, so I can't compare the features between the products. However, we built Pipelines as cloud hosted CI/CD tool, which means you get a few things:
You can also see this video of the Atlassian keynote where we talk about Bitbucket Pipelines https://www.youtube.com/watch?v=XB7Z3akRmV8&feature=youtu.be&t=710
Also, keep in mind that currently Bitbucket Pipelines has limited Windows support at the moment: we don't support all of .Net yet, only .Net Core. That may affect if you can use Bitbucket Pipelines at the moment.
If that hasn't cleared anything up, I'd recommend trying out Bitbucket Pipelines on a small project and see how you like it. Bitbucket Pipelines is free for the rest of this year, and next year we are charging 1 cent per build minute used.
Thanks for your patience.
Cheers,
Phil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Sten and Philip
Sten- we are using teamcity just build feature, and then move manual builds to environments
Bitbucket- we are using to commit our code to Git.
Now our intention is to have automated build moved to staging/prod environments, so here my concern was to move teamcity along with octopus for both building and moving builds OR Bitbucket Bamboo ? We have to choose anyone from Teamcity/Bitbucket
Coming to your comments
Can you brief more on your comment "you cannot yet run pipelines in Windows environment" , as we are building .Net application from visual studio which will be on windows environment and will be committing our code to Git from there itself.
Yes, I see few benefits for pipelines over Teamcity in the below
Few more questions
Security - is there any authorization that we can implement for build moving to production and what else we have more benefits in security compared to teamcity?
and help me in adding more and more benefits to choose Bitbucket CD
Thanks
Ramu
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Ramu,
Because of the way Docker works, our build environments only support applications that will build and run on a Linux system. Microsoft has just announced Docker support, so in the future we will be able to support Windows builds. I can not give an estimate on when we will have full Windows support available.
i.e. We support .Net Core (as Microsoft has made that available on all operating systems), but not the entirety of the .Net framework (as the entire framework is still only available on Windows systems).
In regards to your security question, yes! You can use 'Branch Permissions' in Bitbucket to lock down a specific branch (which adds restrictions to who and how users can add code to a branch). You can then set your production deployments to only deploy from the locked down branch.
If we apply this to the example bitbucket-pipelines.yml file Sten shared, you would make the "production" branch a restricted branch with the Bitbucket branch permissions. You then add your production deployment code to the "production" section of the bitbucket-pipelines.yml file.
Does that help?
Cheers,
Phil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes, Thanks to all for giving me enough information, helped me.
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.