Bitbucket Piplines の概要
Bitbucket Piplines は Bitbucket に付帯する CI 機能です。2016年に実装されたそうです。使ってみての機能的な特徴としてはこんな感じ。
- Docker イメージを利用できる
- Step ごとに別のイメージを利用できる
- Gitブランチや tag での Pipeline 制御ができる
- DSLでの記述( bitbucket-pipelines.yml )
使った感触は他の CI サービスとそこまでの差は感じず。
bitbucket-pipelines.yml
次に bitbucket-pipelines.yml
をお見せします。
pipelines:
branches:
master:
- step:
name: build
image:
name: jekyll/jekyll
username: $DOCKER_USERNAME
password: $DOCKER_PASSWORD
script:
- jekyll build --trace
- ls -al
artifacts:
- _site/**
- step:
name: deploy
image:
name: alpine
username: $DOCKER_USERNAME
password: $DOCKER_PASSWORD
script:
- apk add openssh
- apk add rsync
- rsync -avzr -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=no" _site/* user@yourhost:/path/to/project/
$DOCKER_USERNAME
や $DOCKER_PASSWORD
は変数設定画面にて予めしてしておきます。
build ステップの artifacts の指定によって、次の deploy ステップで jekyll によって生成された _site が利用できるようになっています。
deploy では rsync するだけなので alpine に sshclient インストール使います。丁寧にやるなら known_hosts の設定などもやるべきでしょう。そのあたりはこちらのリファレンスに記載があります
個人的には jekyll を実行するコンテナ内の時刻合わせどうなっているか気になるのですが、それは追って検証します。
以上です。