Bitbucket Cloud の使用を開始する
Bitbucket Cloud を初めてお使いですか? 新規ユーザー用のガイドをご利用ください。
アトラシアンでは、Bitbucket Cloud の CI/CD (継続的インテグレーションと継続的なデリバリー) 用に、Bitbucket Pipelines (Bitbucket Cloud に組み込み) と Bamboo Data Center の 2 つの主要オプションを提供しています。
コードに Bitbucket Cloud を使用している場合、CI/CD パイプラインを Bitbucket Pipelines に移行すると、全体的な CI/CD エクスペリエンスが向上します。Bitbucket Cloud には組み込まれているため、連携の管理やインストールが必要なプラグインはありません。アトラシアン クラウド ランナーを使用してオンデマンドでスケーリング (または独自のランナーに接続) し、パイプを使用してワークフローを簡単に拡張し、コンプライアンスのニーズに合わせてパイプラインを大規模に管理できます。Bitbucket Pipelines に移行するメリットの詳細をご確認ください。
Bamboo から Bitbucket Pipelines への移行を検討しているカスタマー向けに、構文の違いに関するガイドと、移行プランに関するガイドラインがあります。
まず、変数の定義方法について説明しましょう。
Bitbucket Pipelines は次のように変数を分類します。
既定の変数: Pipelines は、ビルドで利用でき、スクリプトでも使用可能な一連の既定の変数を提供します。たとえば、$BITBUCKET_BUILD_NUMBERです。
ワークスペース変数: ワークスペースに指定した変数は、そのワークスペースに所属するすべてのリポジトリからアクセスできます。
リポジトリ変数: リポジトリで書き込みアクセス権限を持つユーザーは、リポジトリ レベルで追加されたパイプライン変数を使用できます。
デプロイ変数: また、特定のデプロイ環境でのみ使用されるように変数を定義することもできます。
また、Bitbucket Pipelines は OIDC (OpenID Connect) をサポートしているため、資格情報を保存せずにサードパーティや内部のアプリケーションに安全にアクセスできます。
Bamboo では、 次のように変数がスコープに基づいて分類されます 。
ビルド固有の変数: ビルド時に Bamboo プロパティまたはプラグインから動的に評価されます。たとえば、${bamboo.planKey}。
デプロイ変数: プロジェクトのデプロイ時に使用できます。
システム変数: Bamboo インスタンス全体に適用し、システム変数または環境変数から値を継承します。
グローバル変数: すべてのプラン機能の静的な値を使用してインスタンス レベルで定義されます。
プロジェクト変数: 特定のプロジェクトに対して定義され、グローバル変数を上書きできます。
プラン機能変数:特定のプラン機能に対して定義され、グローバル変数およびプロジェクト変数を上書きでき、ビルド中に手動で上書きできます。
変数の設定方法にはこのような根本的な違いがあるため、ここでは Bamboo プラン機能を Bitbucket Pipelines に移行する方法の例をいくつか示します。
以下に、Bamboo から Bitbucket Pipelines への移行に関する例と構文比較を示します。
Bamboo YAML 仕様 | Pipelines |
---|---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
---
version: 2
plan:
project-key: PROJ
key: PLAN
name: Example Plan
stages:
- Stage 1:
jobs:
- Job 1
Job 1:
tasks:
- script:
- echo 'Hello World' | 1
2
3
4
5
6
7
image: atlassian/default-image:4
pipelines:
default:
- step:
name: Example
script:
- echo 'Hello World' |
Bamboo YAML 仕様 | Pipelines |
---|---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
---
version: 2
plan:
project-key: PROJ
key: PLAN
name: Example Plan
stages:
- Stage 1:
jobs:
- Build and Test
- Lint
- Security scan
Build and Test:
tasks:
- script:
- echo "Your build and test goes here..."
Lint:
tasks:
- script:
- echo "Your linting goes here..."
Security scan:
tasks:
- script:
- echo "Your security scan goes here..." | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
image: atlassian/default-image:4
pipelines:
default:
- parallel:
- step:
name: 'Build and Test'
script:
- echo "Your build and test goes here..."
- step:
name: 'Lint'
script:
- echo "Your linting goes here..."
- step:
name: 'Security scan'
script:
- echo "Your security scan goes here..." |
次のパイプライン コードは、シークレット テキストの資格情報に環境変数を使用してパイプラインを作成する方法の例を示しています。
Bamboo YAML 仕様 | Pipelines |
---|---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
---
version: 2
plan:
project-key: PROJ
key: PLAN
name: Example Plan
stages:
- Stage 1:
jobs:
- Example Job
Example Job:
tasks:
- script:
- echo "Running ${bamboo.buildNumber} on ${bamboo.planRepository.repositoryUrl}" | 1
2
3
4
5
6
7
image: atlassian/default-image:4
pipelines:
default:
- step:
name: Example
script:
- echo "Running $BITBUCKET_BUILD_NUMBER on $BITBUCKET_GIT_HTTP_ORIGIN"
|
Bamboo YAML 仕様 | Pipelines |
---|---|
設定に基づいて、Bamboo はビルドがハングしているかタイムアウトしているかを判断できます。これらの設定は、各プラン機能の実行可能設定で、個々のプラン機能に対して上書きできます。ビルド監視は既定で有効になっています。 | Pipelines では、パラメーターを設定して各ステップのタイムアウト制限を定義できます。 1
2
3
4
5
6
7
8
image: atlassian/default-image:4
pipelines:
default:
- step:
name: Example
script:
- echo 'Hello World'
max-time: 60 # Timeout in minutes |
Bamboo YAML 仕様 | Pipelines |
---|---|
1
2
3
4
5
---
version: 2
#short syntax
triggers:
- cron: 0 * * * ? * | Bitbucket Pipelines のスケジュールされたビルドは、ユーザー インターフェイスで構成されます。ビルド スケジュールを簡単に設定および管理し、ビルドの頻度とタイミングを特定できます。 |
Bamboo YAML 仕様 | Pipelines |
---|---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
---
version: 2
plan:
project-key: PROJ
key: PLAN
name: Example Plan
stages:
- Lint and Test:
- Lint
- Build Artifact:
- Build Artifact
- Publish Image:
- Publish Image
Lint:
tasks:
- script:
- npm install
- npm lint
docker:
image: node:alpine
Build Artifact:
tasks:
- script:
- ${bamboo_capability_system_builder_npm} install
- ${bamboo_capability_system_builder_npm} run build
- script:
- cp -r content build/
- cp release/* build/
requirements:
- node
artifacts:
- name: release
pattern: build/**
Deploy Image:
tasks:
- artifact-download:
source-plan: PROJ-PLAN
artifacts:
- name: release | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
image: atlassian/default-image:4
pipelines:
default:
- step:
name: Lint and Test
caches:
- node
script:
- npm install
- npm lint
- npm test
- step:
name: Build Artifact
script:
- npm install
- npm run build
- cp -r content build/
- cp release/* build/
- zip -r build.zip build/
artifacts:
- build.zip
- step:
name: Deploy Image
services:
- docker
script:
- pipe: atlassian/aws-code-deploy:1.5.0
variables:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
S3_BUCKET: $S3_BUCKET
COMMAND: "upload"
APPLICATION_NAME: "my-application"
ZIP_FILE: "build.zip" |
Bamboo から Bitbucket Pipelines への移行には、段階的な移行アプローチを推奨します。この戦略では、必要に応じて Bamboo を活用しながら、既存のリポジトリを Bitbucket Pipelines に徐々に移行できるため、スムーズで効率的な移行を確実に行うことができます。
まず、重要度の低いリポジトリまたはビルド プロセスの一部を Bitbucket Pipelines に移行し、その過程で構成をテストして調整します。移行期間中は、bamboo-trigger-build パイプを使用して Bamboo ジョブをトリガーするように Bitbucket Pipelines を設定できます。このハイブリッド アプローチにより、チームは徐々に Bitbucket Pipelines に慣れ、進行中の開発プロセスを中断することなく移行の課題に対処できます。
ここでは、Pipelines から基本的な Bamboo ジョブをトリガーする方法の例をいくつか示します。
1
2
3
4
5
6
7
script:
- pipe: atlassian/bamboo-trigger-build:0.6.0
variables:
BAMBOO_ENDPOINT: 'http://your-bamboo.net:8085'
PROJECT_KEYWORD: 'TEST'
PLAN_KEYWORD: 'TEST'
TOKEN: '<your access token>'
Bamboo ジョブのビルドをトリガーし、ビルドが完了するまで待ちます。
ワークフローには十分なWAIT時間を設定してください。
1
2
3
4
5
6
7
8
9
script:
- pipe: atlassian/bamboo-trigger-build:0.6.0
variables:
BAMBOO_ENDPOINT: 'http://your-bamboo.net:8085'
PROJECT_KEYWORD: 'TEST'
PLAN_KEYWORD: 'TEST'
TOKEN: '<your access token>'
WAIT: 'true'
WAIT_INTERVAL: '15'
この内容はお役に立ちましたか?