てくてくあるく

WordPress の テーマ とか プラグイン に ついて 勉強しています

前回では とりあえず リポジトリのファイルを git ftp で デプロイする という事をしましたが

今回は master ブランチ と develop ブランチ を 別々に デプロイする 事が 出来るようになりました


Bitbucket Pipelines


前回では 説明していなかったのですが $ で 変数を 使うことが出来ます

こちらを 使えば リポジトリに入れないといけない bitbucket-pipelines.yml に ID や PASS を 記述しなくて済みます

詳しくは こちらのドキュメントを 読んで 確認してください

Environment variables - Atlassian Documentation
https://ja.confluence.atlassian.com/bitbucket/environment-variables-794502608.html

Git FTP


前回 行った パターンと 同等なものになります

Bitbucket の Pipelines を 使ってみた
https://tekuaru.jack-russell.jp/2017/08/24/1449/

こちらは サーバ上に git や SSH を インストール する必要はなく
FTP だけ 使えれば この方法が 使えるという お手軽な方法になります

ただ サーバ上 の diff 等は 取らないので 上書きになってしまいます
なので サーバ上 の ファイルは 触らない 等 の 運用が必要かと 思います

初回は init 次回以降は push と 少しだけ コマンドが 変わります


bitbucket-pipelines.yml (初回)


image: debian:9-slim

pipelines:
  branches:
    master:
      - step:
        script:
          - apt-get update && apt-get -qq install git-ftp
          - git ftp init --user $PRODUCTION_FTP_USERNAME --passwd $PRODUCTION_FTP_PASSWORD $PRODUCTION_FTP_DIRECTORY
    develop:
      - step:
        script:
          - apt-get update && apt-get -qq install git-ftp
          - git ftp init --user $DEVELOP_FTP_USERNAME --passwd $DEVELOP_FTP_PASSWORD $DEVELOP_FTP_DIRECTORY

bitbucket-pipelines.yml (次回から)


image: debian:9-slim

pipelines:
  branches:
    master:
      -prep:
          script:
            - apt-get update && apt-get -qq install git-ftp
            - git ftp push --user $PRODUCTION_FTP_USERNAME --passwd $PRODUCTION_FTP_PASSWORD $PRODUCTION_FTP_DIRECTORY
    develop:
      - step:
          script:
            - apt-get update && apt-get -qq install git-ftp
            - git ftp push --user $DEVELOP_FTP_USERNAME --passwd $DEVELOP_FTP_PASSWORD $DEVELOP_FTP_DIRECTORY

SSH


こちらは SSH で デプロイするパターンです

  • bitbucket から サーバへ SSH するための キー登録
  • サーバ から bitbucketへ SSH するための キー登録
  • サーバ内で git を 使う

という 幾つかの 手続きが必要になります

ただ こちらは Diff が 取られて
サーバ上のファイルに 変更があると コンフリクトを起こして エラーになります


Pipelines だけで デプロイ出来るのですが
コンフリクト等を起こして 修正して もう一度 Pipelines から デプロイするのは 手間なので
シェルスクリプト として 分けて そのまま叩いて デプロイするようにしています

また 初回の git clone は 手動で 行いました


サーバに ファイヤーウォールがある場合は 下記のURL を 参考に 指定してください

What are the Bitbucket Cloud IP addresses I should use to configure my corporate firewall? - Atlassian Documentation
https://confluence.atlassian.com/bitbucket/what-are-the-bitbucket-cloud-ip-addresses-i-should-use-to-configure-my-corporate-firewall-343343385.html

ただ 上記の情報だけでは 僕の環境では 接続できませんでした…

一旦 ファイヤーウォールを 切って フィンガープリント の 設定をしたのですが
設定されてからは 接続できるようになりました

Valid IP addresses for Bitbucket Pipelines services の IPアドレス以外に あるんじゃないのかな??


bitbucket-pipelines.yml


image: alpine:latest

pipelines:
  branches:
    master:
      - step:
          script:
            - apk --update --no-cache add openssh-client
            - ssh -p $PRODUCTION_SERVER_PORT $PRODUCTION_SERVER_USER@$PRODUCTION_SERVER_IP $PRODUCTION_SERVER_SCRIPT
    develop:
      - step:
          script:
            - apk --update --no-cache add openssh-client
            - ssh -p $DEVELOP_SERVER_PORT $DEVELOP_SERVER_USER@$DEVELOP_SERVER_IP $DEVELOP_SERVER_SCRIPT

シェルスクリプト


こちらが サーバ上に置くファイル に なります
cd の ディレクトリ先は 別途 修正してください

cd ~/tekuaru.jack-russell.jp/htdocs/
git checkout master
git pull

よかったら みなさんも 使ってみてください

めちゃめちゃ 便利ですよ!!

Related Article

Visual Studio Code が Ver 1.0.0 に なって 公開されました!!

詳細へ »

GitHub や Bitbucket から 直接 WordPress の 更新 を 使って テーマ や プラグイン を アップデートする

詳細へ »

Sourcetree を 2.2 に アップデート したら Git flow ボタン が 消えてる…

詳細へ »