link facebook2 twitter youtube

Bitbucket Pipelineを使用したghostテーマのビルド

ghostのテーマをbitbucketにpushを行った際に自動で圧縮ファイルを作りたいと思い、公式の情報を参考に設定を行いました。公式の情報焼きまわしてですが、今回手順を紹介したいと思います。

1. パーミッションの設定とパスワードの作成

pipelineから対象のリポジトリに書き込みを行える用にパスワードとパーミッションの設定を行います。
bitbucektにログインを行い、左下のアイコンからview-profile->設定に進みます。

32d1a43c9a55a5c47618d6c34423b589

次いで、アプリパスワードよりアプリパスワードの作成に進みます。
Labelには任意の名前を設定し、リポジトリの書き込み権限を付与します。
caa399c6b6057ef9190a6e361dc92929

作成を選択するとパスワードが生成されるので、パスワードをメモします。
-------

次の設定でユーザ名とパスワードを使用するため、メモしておきます。

ユーザ名: lnkusuin
パスワード: TJRPXkh4XjwdPjFCbDus

2. 認証トークン情報をリポジトリのpipeline環境変数に設定

作成したパスワードをpipelineの環境変数に設定を行います。リポジトリより

  1. 設定 ->
  2. 「PIPELINES」 ->
  3. 「Enviroment variables」 ->
  4. 「Variable name」と「Value」を設定
  • Variable nameにBB_AUHT_STRING
  • Valueにlnkusuin:TJRPXkh4XjwdPjFCbDus

BB_AUHT_STRINGはpipeline上のコードから参照するために使用します。

-------2

3. pipelineを書く

では実際にpipelineの定義を書きます。
imageには使い慣れているpythonを指定しています。
scriptにはapt-getでまず更新を行い、unzipとzipコマンドをインストールします。zipコマンドよりテーマをzip化し、curlコマンドで対象ファイルをリポジトリにアップロードを行います。

curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@${NAME}.zip

curlに先ほど環境変数として設定したBB_AUTH_STRINGをつけ、対象のリポジトリに対してリクエストを送ります。

以下今回作成したソースコードです。

image: python:3.5.1
pipelines:
  default:
      - step:
          script:
            - apt-get update
            - apt-get -y install unzip zip
            - NAME=beta01
            - cd content/themes
            - zip ${NAME} -r beta01
            - curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@${NAME}.zip

4. ダウンロードページでビルド物を確認

-----------2

無事作成されていました。

5. 今後

zip後ダウンロードを行いghostにテーマを適用を手動で行っていますが、ghost apiなものでテーマの適用ができればと思います。

This Post Was Written By 若井豊

© eggplant