LoginSignup
3
10

More than 5 years have passed since last update.

Bitbucketでgit-ftpを自動化する

Last updated at Posted at 2018-01-05

環境

タイトルにあるようにソースコードのホスティングにはBitbucketを使用する必要があります。

はじめに

この記事はこちらの続きです。
コマンドでgit ftp pushをしたくなかったのと、push時に色々出来るようにしたかったので、Bitbucketのpiplinesを使って見ました。

こちらの記事の続編であるため、git ftp initは終わっているという前提で進めていきます。

1.Bitbucketでpiplinesを有効化

Bitbucketではデフォルトでpiplinesが無効化されているので、有効化していきます。
リポジトリのページにアクセスをして、サイドバーの一番下の「設定」をクリックします。

スクリーンショット 2018-01-05 10.57.11.png

「設定」 → 「settings」をクリック

image.png

「settings」をクリックしたら、以下のように有効化させます。
image.png

以上でBitbucket側の設定は完了です。

2.bitbucket-pipelines.ymlに設定を記述

上記でpiplinesが有効化されたら、タスクを登録するためのファイルを作成します。
該当のリポジトリ内にbitbucket-pipelines.ymlというファイルを作成します。

作成したら、以下を入力

image: samueldebruyn/debian-git

pipelines:
  default:
    - step:
        script:
          - echo "Pipline Start"
          - apt-get update
          - apt-get -qq install git-ftp
          - echo "start deploy"
          - git ftp push --user FTPのユーザー名 --passwd FTPのパスワード ftp://FTPのホスト/対象となるディレクトリ
          - echo "All done deploy"

例:

  • FTPのユーザー名:ftp-user
  • FTPのパスワード:ftp-user-pass
  • FTPのホスト:example.xsrv.jp

とした場合は、以下のようになる。

image: samueldebruyn/debian-git

pipelines:
  default:
    - step:
        script:
          - echo "Pipline Start"
          - apt-get update
          - apt-get -qq install git-ftp
          - echo "start deploy"
          - git ftp push --user ftp-user --passwd ftp-user-pass ftp://example.xsrv.jp/
          - echo "All done deploy"

bitbucket-pipelines.ymlを設定し、masterにpushを行うと、piplinesが起動する。
piplinesの経過はリポジトリページのpiplinesで確認が出来る。
以上で、git ftp pushをコマンドから実行しないで実行が可能となる。

3.設定情報を環境変数に置き換える

設定ファイルにパスワードなどを書き込みたく無い場合は、環境変数に置き換える。
設定→Piplines→Environment variablesをクリックする
image.png

環境変数を設定していく、一応簡易な手順

  • 1.Variable name:変数名
  • 2.Value:変数に代入する値
  • 3.Securedにチェック入れてaddする

以下が設定された状態

image.png

2で設定したbitbucket-pipelines.ymlを以下のように変更する。
Bitbucket側に環境変数を定義したので、該当部分を環境変数に変更していく。
設定した環境変数を用いる場合は、$変数名とする必要がある。

例:FTP_USERとした場合、$FTP_USERとymlファイルに記述する

image: samueldebruyn/debian-git

pipelines:
  default:
    - step:
        script:
          - echo "Pipline Start"
          - apt-get update
          - apt-get -qq install git-ftp
          - echo "start deploy"
          - git ftp push --user $FTP_USER --passwd $FTP_PASS $FTP_URL
          - echo "All done deploy"

上記が設定し終わったら、再度masterにpushをして確認してみる。
ここでこける場合は、bitbucket側の設定とbitbucket-pipelines.ymlの記述が正しく無い可能性があるので、チェックして見てください。

3
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
10