Bitbucket PipelineとGithub Actionsの違い
仕事でBitbucketを使う機会がありましたのでPipeline使ってみました。
普段Github Actionsばかり使っているので、Bitbucket Pipelineと違うところを比較してみます。
CI用のファイル
Github | Bitbucket |
---|---|
.github/workflowsの*.yml | bitbucket-pipelines.yml |
Githubの方は作業の種類ごとに細かくファイルを分けれますが、bitbucketは一つのみ?
複数の処理
Github | Bitbucket | |
---|---|---|
YAMLアンカー | 使えない | 使える |
matrix | 使える | 使えない |
BitbucketはYAMLアンカー を使って複数の処理を一つの記述にまとめて、必要に応じて処理を上書きできる。 | ||
対してGithubはmatrixを使うと、たとえばバージョン違いの検証などが簡単に行える。 |
CIで考えるとGithubの方がシンプル。Bitbucketはどんな内容でも対応できるので汎用性が高い。
他のサービスとの連携
Github | Bitbucket |
---|---|
Workflowを利用する。 | Pipeがあると楽に利用できる |
BitbicketはPipeを利用して連携することができる。GithubではWorkflowを利用して連携することができる。
設定などはBitbucketの方が簡単。
並列実行
Github | Bitbucket |
---|---|
設定不要 も使える | parallelで指定する |
Githubは前述のyamlファイルの全てが並列に動きます。Bitbucket Pipelineはparallel指定したもののみ。
ほぼ同じところ
項目 | Github | Bitbucket |
---|---|---|
docker利用 | 使える | 使える |
リポジトリ環境変数 | 使える | 使える |
トリガー | イベント | パイプライントリガー |
キャッシュ | 利用できる | 利用できる |
ジョブ間の情報の共有 | Job outputs | アーティファクトを共有する |
Bitbucketの特徴
右側でテンプレートやPipeを選択してコピペすればすぐに使えるファイルができる。
でも、1ファイルで運用なのでかなりゴチャゴチャしてしまうので、stepは細かく分けたほうが良さそうです。
実行画面がBitbucketは結構作り込まれています。
Bitbucketは実行画面でdockerタブがあります。
あと、deploymentを指定すると、そもそも管理する画面が変わるので、CI/CDをまとめて行った時とかはみやすいと思います。
ただ、GithubAcitonsだとWorkflowごとに処理を変えてCDさせれるので、管理という意味ではファイルで管理できるGithubActionsの方が好みです。
総評
Pipeで行える範囲で利用したり、WebUIで管理するのであればBitbucketは便利だと思います。Slack通知とかはあっという間に作成できます。
複数人で作業する場合などで、全部git上のファイルで管理するのであれば、GithubActionsの方が管理しやすいと感じました。
どちらも一長一短なので、今後の展開も見ていきたいと思います。