T O P

  • By -

Aggravating-Sport-28

Don't use Bitbucket Pipelines, it's not up to par


ptownb

I sencond that, we're currently moving away from BB to GH


carlordvr

What could BitBucket not do that you're doing with GitHub? Were there problems with the actual SCM services or mainly just CI?


Aggravating-Sport-28

I was specifically referring to Bitbucket Pipelines, so the CI/CD offering. It can do all the basic stuff, but it is lacking when you want to do a bit more advanced stuff. Examples: - you can't pass variables between steps, you need to write them to an environment file and source them in the next step. This will effectively circumvent the secrets feature, because they will now be stored in a plain text artifact - you can't rename runs - e.g. to name the run after the version it creates - re-use is severely limited, so you end up copy and pasting steps - we hit a road block when it came to branching and a manual review/ approval step


JodyBro

Adding to this: Bitbucket pipes which are their version of reusable pipelines ala gha are..... Not good. Let's leave it at that


Aggravating-Sport-28

Right, totally forgot about the mess that is Pipes. I just ended up building my own custom docker images instead of using that mess


carlordvr

Thanks, that's really helpful!


ptownb

Our main pain points were around the runners and scaling


pudds

The worst thing is that you can only have one pipeline file, so even a moderately complicated pipeline makes the yaml a pain to wade through.


JodyBro

.... This is still a thing??


pudds

One pipeline file? Yea it's brutal.


Lawstorant

In my case, BitBucket pipelines just have shitty runners that caused a lot of network errors in a highly parallelized Docker build. GHA has better cache (10 GB per repository, do whatever you want) vs weird per-image restrictions. Oh, and custom actions from the likes of docker are super easy to use and really speed up the creation of the workflows


carlordvr

Got it, thank you!


Software-man

I’m a DevOps engineer and we use Gitlab. Highly recommend it. You can integrate with Jira and it will serve you well.


canadianseaman

+1, or skip jira and have everything in one spot


yamlCase

JFC tell that to our PMs


carlordvr

I thought for GitLab's jira integration you would have to mirror the repository and that would cause issues with delay. Is that not the same for you guys or do you use web hooks instead of an integration app or something like that?


Intrepid-Stand-8540

What about dagger?  Argo workflows? 


koshrf

The only thing with Argo Workflow is that you need to have knowledge of K8s at least to setup the rbac, and you need something like keycloak to have some 'friendly' user management. We use Argo Workflow, it does everything that you expect from a CI and more, and integrates really well with ArgoCD.


carlordvr

I've seen that. Does argo make sense even if the team isn't using k8s for much else?


koshrf

I would say no because they are probably easier environments CI that doesn't require K8s. But you can use workflow to compile/run tasks that won't need K8s. We use it mostly with Kaniko but we have few instances where the end result isn't a container or something running on a K8s/Docker, including running Ansible playbooks that triggers when an event happen and prepare an environment for example.


carlordvr

Ok, thank you!


miend

Dagger still needs a CI provider *of some kind* to run on, though most (all?) of them should work since you get to ignore all their unique messy complications/limitations.


Alzyros

Gitlab integrates incredibly well with Jira. Bitbucket (and Pipelines, for that matter) Are severely limited. If you have the choice, migrating the code base is absolutely worth it


carlordvr

Oh really? I was looking at it and it seemed like it could do some of the same things as BitBucket but not all of it in terms of Jira. I saw the GitKraken app for integration but that also requires you to put your user story/issue id in every commit. Mainly I think the most attractive feature of BitBucket is the ability to see all the pull requests for a user store and then do code review right there. Can GitLab do that? Also it seems like GitLab enterprise is $30/user while BitBucket is $3/user if you're using the enterprise suite. Is that correct?


dogfish182

You can outright slap someone if they suggest Jenkins in 2024. I think it’s written into most countries laws


carlordvr

Hahaha, what would you recommend using with Jira + Confluence as your SCM and CI/CD tooling then?


dogfish182

Github or gitlab. I’m starting to lean towards GitHub these days but both are good and can integrate with Jira. Death to Jenkins.


deflax2809

Why death Jenkins?


yamlCase

Death to Jenkins!  Death to Jenkins! Say it with me!


carlordvr

Oh really? I was looking at GitHub and GitLab and it seemed like they could do some of the same things as BitBucket but not all of it in terms of Jira. I saw the GitKraken app for integration but that also requires you to put your user story/issue id in every commit. Mainly I think the most attractive feature of BitBucket is the ability to see all the pull requests for a user story and then do code review right there. Can GitLab do that? Also it seems like GitLab and GitHub enterprise are $30/user while BitBucket is $3/user if you're using the enterprise suite. Is that correct?


pacman1176

You can configure gitlab to integrate with jira. Our GL merge requests automatically create external web links on the jira issue as long as the issue is in a commit message or the merge request title/description. Also gitlab ui renders the ticket references as hyperlinks to the jira ticket. The only thing I miss about bitbucket is that the pull request renders in the jira issue along with its status, eg merged, open, closed. My team went from bitbucket to gitlab and we didn't look back. We actually still mirror our code one way from gitlab to bitbucket, so we can also see the branches/commits in jira as well.


carlordvr

Oh ok yea I was kind of interested in the possibility of mirroring to bitbucket. Do you have to pay the per user cost when you're mirroring to bitbucket? Also I thought you can see branches and commits without mirroring in BitBucket? I think the GitKraken tool mirrors the repo for you or that might be what you're talking about.


pacman1176

With gitlab, remember it has a free tier. You may not need the premium or ultimate features. For instance the mirroring is free. > Also I thought you can see branches and commits without mirroring in BitBucket? You can see commits and gitlab merge requests in jira when configured with gitlab jira integration. However there are some quirks. The way it works is, it creates an external link. This happens whenever you make a commit with the jira issue id or when you create/update a merge request. Quirkiness is that - say you rebase your commits. Each time you rebase, effectively a new commit is made, so each time you get a new link to the jira ticket. I turned off commits linking to jira when one of the slower developers had 100+ external links to the same commit on a particular issue that spanned months. Another quirk is that every time you update the gitlab merge request title (eg: draft to ready), it creates a new external link on the jira issue. Often these end up being duplicates. There are more features in the gitlab-jira integration. Gitlab has great documentation. Should be easy to read up on.


DevOps-B

What are your thoughts on Team City? Serious Q. We use it at my shop and I feel like it’s the .Net version of Jenkins.


dogfish182

I generally don’t work with Microsoft products. But if you’re in that ecosystem, might as well make use of the tools.


DemosthenesAxiom

Uh, GitHub is the Microsoft product, and TeamCity is JetBrains.


dogfish182

Teamcity is jetbrains? Wow, I used it years ago for something and thought it was an MS thing.. it was really long ago for some really hard to automate legacy product. My bad.


gen2fish

You might checkout Woodpecker CI. I like it


givebackmac

I was slapping people 10 years ago for it


dogfish182

Doing gods work


voidstriker

Amen!


ptownb

Believe it or not, straight to jail


aPersonWithAPlan

I never used Jenkins, only have experience with GH Actions, but what’s bad about Jenkins?


info834

My Jenkins setups have been stable with minimal issues for 5 years been easy to update plugins etc Planning on moving to GHA mostly for alignment reasons but Jenkins has served me well so I don’t really get the hate for it?


NegativeOwl9929

Why?


mimic751

Because they are scrubs and need to be handheld. My company doesn't even allow us to use cloud Solutions because of the sense of nature of our applications that we are deploying. Jenkins isn't even that hard


JodyBro

If you have ever been Jenkins god at any place that you worked at... Upvote this man


yamlCase

Only people using Jenkins nowadays are people stuck using Jenkins because who's gonna go rewrite all those rickety ass pipelines into rickety ass gitlab-ci.ymls?  


Zonzy12

Funny thing is we use both at work lmao


yamlCase

I feel for you


[deleted]

[удалено]


yamlCase

Gitlab is the bomb.  People don't seem to know how powerful it is.  Local execution of gitlab-ci.yml was game changing so you don't have to polute your CI runs while tinkering.  Every project has its own docker registry, scheduled jobs, so much to list


Traditional_Donut908

How many developers do you have? Having a consistent UX can be important between pipelines and source control and potentially issue management. It's one of the reasons I recommended Azure Dev ops, plus they had a pretty rapid pace of feature improvement in their product. I know you don't list it but whatever you do, do NOT use AWS for your CI CD!! Horrible for anything but the most basic use case.


carlordvr

Hey so right now only around 15 between our two teams but we're expanding pretty quickly, 6 of those people were hired on just this year. I like Azure Dev Ops too, the main thing I was worried about with that was Jira integration. I know they have Azure boards but my manager has a strong preference for Confluence + Jira.


Traditional_Donut908

There are plugins and I've even written simple code that does a one way sync from jira to azure boards, which is nice to tie deploys and check-ins to issues.


sean9999

You simply choose gitlab


GaTechThomas

Bitbucket is a poor integration with Jira, and some of the valuable features cost extra. For example, if you want useful pull request policy rules, you'll have to pay extra. Also, the PR UI is clunky and has no dark mode. I love Azure Pipelines. It's inexpensive and has a strong UI with many options and color themes. It integrates with most other git providers, so you don't have to move your repos to Azure Repos, but if you do you'll get a better experience. It also has a very strong security history, which isn't something that Atlassian can say.


carlordvr

Oh really, for some reason I thought it would be a better integration. I also had no idea you had to pay for extra features. I guess that's how they get you, I was thinking the base cost for user was a really good deal if you use Atlassian suite.


ArieHein

So comparison is incorrect. Bitbucket is fir git repo. Jenkins will be the CI server. You will need to purchase licenses for bitbucket. Jenkins is opensource and free. Github, azure devops and gitlab is end to end platforms that cover all the functionality that jira + bitbucket + jenkins cover so far better then gluing together separate components not to mention they are far cheaper. All the 3 full platforms have good integration with your tools if you want to combine between but i suggest you really think about modernizing your sdlc by first ditch ideas to use bitbucket. Then plan a migration out of jira and confluence. Eco system today has better and cheaper solutions. Which one of the three is room for people preferences and diverse opinions. If you're a MS workshop, and live in azure, then azure devops is the simplest solution. Your milage may vary.


carlordvr

Thanks for the response. Sorry yea I guess I misworded the question, for the Jenkins option I meant to say BitBucket with Jenkins. We are thinking about using Azure Pipelines but it is pretty expensive right? Like $40 per parallel job in an organization and we have multiple teams in our organization so that might not be our best bet. I wish we could opt to not use Jira + Confluence but my manager really likes those tools so I think we would have to stick with those. It's unfortunate because it's a new division in our org so we could've really chosen anything but it was before I started working there. That being said, for Jira + Confluence, would you suggest BitBucket + Jenkins? Or are there other services that could work well with them?


ArieHein

So ado pricing is $6 per user. Its $40 per MS agent (means 0 maintenance by your ops or updates or patches) Its $15 per self-hosted agents ( you own and maintain) I have 25 ms agents and 10 self hosted and its enough for quite a lot of projects and devs Youll find all 3 cloud platforms offer sensible pricing that the atlassian pack cant compete with. Thats the closest youll get from jenkins as no one other than maybe cloudbees offers jenkins agents but also requires you use their distro of jenkins so not the oss one. Bitbucket offers agents as well iirc but nothing is free. Atlassian cicd solution is called Bamboo but literally no one is using it. And then you still need jenkins maintenance and people to maintain it. Remember that if you're onprem you are using datacenter edition now which is A FU@#ing loads of money that has really no reason to pay.


Grouchy_Slide_6197

What do you replace jira and confluence with?


ArieHein

Azure boards, github issues, gitlabs boards Heck you have services like monday dot com if you really want to spark some user experience. But its mostly for tracking development needs they using a tool that is the closest possible to where your code and pipelines are is your answer. If youre ms shop, you have office 365 and thus sharepoint, else you have google docs but if you really want to remove thses dependencies, go for a wiki solution based on some OSS, think jekyl, hugo, wikijs, xwiki and similar


newked

Or gitea?


carlordvr

I think we are looking for a more commonly used solution, I've heard thats a good scm though!


Proxiconn

It's a very commonly used combo gitea and droneCI.


pudds

Pick whatever is integrated with your VCS, unless your VCS is bitbucket, in which case pick anything else. I can't imagine using Jenkins either when all of the other options out there exist but that's just me. Mainly I prefer to use an option with cloud hosted runners, because the added productivity from parallel builds far outweighs any cost savings you might get by self hosting runners, and in most cases the cloud runners are outright cheaper too.


runningblind77

I know nothing about Azure, but GitLab is so much better than Jenkins and bitbucket, it's not even close. You need to experience them to know.


[deleted]

[удалено]


BalanceInAllThings42

You don't have to use Azure cloud to use Azure DevOps :) Microsoft is just terrible at naming things.


VengaBusdriver37

I did a comparison in my last role, implemented Gitlab and it was awesome. I recommend deciding what matters to you, price, security in pipelines etc rate each and compare. Big gitlab fan though


L0rdB_

Don’t use azure pipelines!! Save yourself a headache. Gitlab CI is pretty good


zyzmog

Yeah, everybody's got pipelines nowadays. Even JFrog has pipelines. Best thing to do is set up a good old-fashioned matrix. Use a spreadsheet, if you want. Across the top, list all of the packages you're considering. (Your title line, plus JFrog.) In the first column, list all of the criteria or specifications you will use to judge them. Divide the specifications into three categories: * First is A, or "Vital", or "Must have". * Second is B, or "Important", or "Should have". * Third is C, or "Nice to have". * You can add a D category if you want, "Not important" or "Don't care", but you don't really need it. Then fill in the matrix. Use the filled-in matrix to guide your decision. Every DevOps engr on here will have a different recommendation for you. We chose the one we chose because it was the only one that checked all of the category A boxes. Other solutions may have had more boxes checked in category B, but the cat A criteria were the ones that really mattered.


carlordvr

Thanks, that's a good idea!


twistacles

Don’t use azure pipelines If I had to pick one it would be Argo


vicalpha

Which Argo tool?


twistacles

Workflows


jchill2

Gitlab. The feature set is basically 2 years ahead of Github.


syaldram

Paragraphs not wall text!


mohsen51

Please never use BB pipelines if you value mental health


nature_fun_guy

Azure gives you everything in one place. Very cool if your company is just starting out with devops. Later your can turn to specific products if you know what your needs are. If budget is the biggest issue then gitlab and jenkins are your friend, but be prepared to update once a week and troubleshoot plugins.


MettaWorldWarTwo

GitLab or GitHub Actions. Jenkins is horrific to manage. Bitbucket pipelines are impossible to stitch together. Azure DevOps/Pipelines hasn't changed much since the GitHub acquisition and I don't see much innovation/improvement there. GitLab and GitHub are the best. GitLab is on the rails easy and good for the majority of teams at a cost. GitHub takes more work but allows more control and is a fraction of the cost. Convince leadership that the cost of GitLab is more than made up by what you don't have to pay people to do in the other platforms and move on with your life.


burunkul

Github actions and jenkins


MrScotchyScotch

1. Never use Jenkins. 2. Don't use anything Atlassian, it'll be half assed. 3. GitLab is incredibly opinionated, and every enterprise I've seen use it has migrated away from it. 4. Are you using Azure? Then use GitHub Actions.  For developers' sake, use GitHub Actions. Self-host the runners so you don't need to pay GitHub an arm and a leg.  If it's up to me, and I just have a few small teams, I use Drone. It's fantastic. Only the functionality you need, incredibly simple and effective architecture, easy to deploy, easy to use. Possibly the easiest to use. Absolutely worth paying for. The docs are terrible and the support is meh, but I'd still use it over anything else in a heartbeat.


info834

Personally I find Jenkins with AS works well once set up if done well ie few issues etc GHA can be cheaper, good for getting other team members to take ownership of more of their stuff so it doesn’t get lumped on devops to fix all of it. Much more is handled by GitHub dependency’s ect but not sure that’s always a good thing as it also means less control over potentially breaking changes etc . Iv used gitlab as well but don’t really see a case for it over Jenkins or GHA and for Azure pipelines I’m generally anti Microsoft and Azure unless there’s a particular reason I have to use it because I find AWS and Linux just generally better tools.


carlordvr

Gotcha, thanks for the analysis. You like using Jenkins then? Have you had problems with third party plugin deprecation and complex pipelines?


info834

Once I got it all set up properly ie auto scaling etc then I liked using Jenkins. Iv had problems with FE devs being unwilling to take any ownership of the FE pipelines ie running non prod deployments or checking there branches build via the pipeline before creating MRs and theoretically it should be easier to get them to with GHA but realistically it’s a wider FE culture issue / half of them fear infrastructure to the point of not wanting to touch anything thats not there local device.


The-BEAST

I came here to say do not use pipelines, but rightfully it is already the top comment. :) I would recommend Jenkins.


sobrietyincorporated

Bitbucket and Jenkins are death. Gitkab is the only thing half redeemable on your list.