Bitbucket で自動実行が出来る Pipeline があるので使ってみたので、それのメモ書き。
2017/09/21現在の事なので、今後機能が増えたり変更されたりする可能性はあるかも。
see: Build, test and deploy with Pipelines - BitBucket Support
PipeLineの特徴
- Docker コンテナ上で指定コマンドを実行
- 実行トリガーは、bitbucketにpushするか、スケジュール指定ができる
- 無料プランでも使える。
3. 実行時間に上限がある。課金で上限を上げられる。
4. BitBucketのPipelineで動かす時間の事を「ビルド時間」と書かれている。
プラン
クラウドの方で計算している。自社ホストタイプの場合はよくわからない。
時間はプロジェクト単位ではなく、BitBucketアカウント単位になる。一つのチームに5人いて、プロジェクトが10個あった時、チームが登録しているプロジェクトの場合は、それらのプロジェクトの実行時間はチームに加算される。
これ以上の細かいことはわからんから、Atlasianの人に聞いてくれ。
プラン | 時間 |
---|---|
無料アカウント | 50分/月 |
アカデミック | 500分/月 |
スタンダード | 500分/月 |
プレミアム | 1000分/月 |
see: Pricing bitbucket
機能特徴
- Docker コンテナを指定してそのイメージ上で動かす。
2. ただ windows はまだ未対応。頑張ってるぽい。
3. 実行環境の上限
4. 4GB Ram
5. 実行時間は最長で2時間
6. 5GBのディスクスペース - SSH-Key指定ができるから、外部サーバにログインして云々も可能
3. 要はデプロイできるやで - 実行方法は、時間指定の定期実行と、git-pushのトリガーで実行させる二種類がある。
5. 二種類を組み合わせることも可能。実行時間がエライことになると思うけど。 - キャッシュ機能がある
7. まだよく理解してない。
8. composer とかの実行結果とか、composerそのもののを毎回入れるのは実行時間くうだけだから、一度使ったらどこかに持たせてキャッシュさせる機能ぽい。
9. see: https://confluence.atlassian.com/bitbucket/caching-dependencies-895552876.html
書式
リポジトリのトップディレクトリに bitbucket-pipelines.yml
という名前で yaml 書式のファイルを保存をする。
例えば、PHPで、gdやmysqlを使っていて、とりあえずいろんなものを使っていて、git-pushした時に自動実行する場合。
image: php:7.1.1
pipelines:
default:
- step:
script:
- apt-get update && apt-get install -y unzip libfreetype6-dev libjpeg62-turbo-dev libpng12-dev
- docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
- docker-php-ext-install -j$(nproc) gd
- docker-php-ext-install mcrypt && docker-php-ext-install pdo_mysql && docker-php-ext-install zip
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer install
- vendor/bin/phpunit
services:
- mysql
unittest:
- step:
script:
- apt-get update && apt-get install -y unzip libfreetype6-dev libjpeg62-turbo-dev libpng12-dev
- docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
- docker-php-ext-install -j$(nproc) gd
- docker-php-ext-install mcrypt && docker-php-ext-install pdo_mysql && docker-php-ext-install zip
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer install
- vendor/bin/phpunit
services:
- mysql
definitions:
services:
mysql:
image: mysql
environment:
MYSQL_DATABASE: 'homestead'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_USER: 'homestead'
MYSQL_PASSWORD: 'secret'
時間指定
bitbucket の指定リポジトリにある Pipelines
から設定できます。設定するには bitbucket-pipelines.yml
の pipelines
以下に default
以外の名前でステップを書いた実行計画がないといけません。上の例の場合だと、 unittest
だけが設定できます。
週指定の設定例。
ここで力尽きた、何か書きたいことができたら追記してく。
todo: workflowの事