Bitbucket で自動実行が出来る Pipeline があるので使ってみたので、それのメモ書き。
2017/09/21現在の事なので、今後機能が増えたり変更されたりする可能性はあるかも。
see: Build, test and deploy with Pipelines - BitBucket Support
PipeLineの特徴
- Docker コンテナ上で指定コマンドを実行
- 実行トリガーは、bitbucketにpushするか、スケジュール指定ができる
- 無料プランでも使える。
- 実行時間に上限がある。課金で上限を上げられる。
- BitBucketのPipelineで動かす時間の事を「ビルド時間」と書かれている。
プラン
クラウドの方で計算している。自社ホストタイプの場合はよくわからない。
時間はプロジェクト単位ではなく、BitBucketアカウント単位になる。一つのチームに5人いて、プロジェクトが10個あった時、チームが登録しているプロジェクトの場合は、それらのプロジェクトの実行時間はチームに加算される。
これ以上の細かいことはわからんから、Atlasianの人に聞いてくれ。
プラン | 時間 |
---|---|
無料アカウント | 50分/月 |
アカデミック | 500分/月 |
スタンダード | 500分/月 |
プレミアム | 1000分/月 |
see: Pricing bitbucket
機能特徴
- Docker コンテナを指定してそのイメージ上で動かす。
- ただ windows はまだ未対応。頑張ってるぽい。
- 実行環境の上限
- 4GB Ram
- 実行時間は最長で2時間
- 5GBのディスクスペース
- SSH-Key指定ができるから、外部サーバにログインして云々も可能
- 要はデプロイできるやで
- 実行方法は、時間指定の定期実行と、git-pushのトリガーで実行させる二種類がある。
- 二種類を組み合わせることも可能。実行時間がエライことになると思うけど。
- キャッシュ機能がある
- まだよく理解してない。
- composer とかの実行結果とか、composerそのもののを毎回入れるのは実行時間くうだけだから、一度使ったらどこかに持たせてキャッシュさせる機能ぽい。
- 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の事