1

Both Github Actions and Bitbucket Pipelines seem to fill similar functions at a surface level. Is it trivial to migrate the YAML for Actions into a Pipeline - or do they operate fundamentally differently?

For example: running something simple like SuperLinter (used on Github Actions) on Bitbucket Pipelines.

I've searched for examples or explanations of the migration process but with little success so far - perhabs they're just not compatible or am I missing something. This is my first time using Bitbucket over Github. Any resources and tips welcome.

hozza
  • 619
  • 2
  • 12
  • 27
  • 1
    There are some generic parts such as running shell scripts, but there are differences in the environments of the runners. Super-linter is very specific to GitHub Actions, and you won't be able to run it on Bitbucket without substantial work, I'd say. – Benjamin W. Nov 07 '22 at 17:42
  • The Actions docs have a few [guides to migrate *to* Actions](https://docs.github.com/en/actions/migrating-to-github-actions) which might serve as indicators for differences, but there isn't one for BitBucket – Benjamin W. Nov 07 '22 at 17:45
  • IMHO, you will regret this change. Bitbucket Pipelines is not a trending system, is underdeveloped and lacks a sufficient userbase so that a healty ecosystem exists. If I could I'd move away my organization to GitLab-CI instead, if not to the very GHA. – N1ngu Nov 08 '22 at 09:18

1 Answers1

1

They are absolutely unrelated CI systems and there is no straightforward migration path from one to another.

Both systems base their definitions in YAML, just like GitLab-CI, but the only thing that can be reused is your very YAML knowledge (syntax and anchors).

As CI systems, both will start some kind of agent to run a list of instructions, a script, so you can probably reuse most of the ideas of your scripts. But the execution environment is very different so be ready to write tons of tweaks like Benjamin commented.

E.g: about that "superlinter", just forget about it. Instead, Bitbucket Pipelines has a concept of pipes which have a similar purpose but are implemented in a rather different approach.

Another key difference: GHA runs on VMs and you configure whatever you need with "setup-actions". BBP runs on docker containers that should feature most of the runtime and tooling you will need upfront, as "setup-pipes" can not exist. So you will end up installing tooling on every run (via apt, yum, apk, wget...) so as to not maintain and keep updated a crazy amount of images with tooling and language runtimes: https://stackoverflow.com/a/72959639/11715259

N1ngu
  • 2,862
  • 17
  • 35