LoginSignup
26
27

More than 5 years have passed since last update.

《Git》GitLabにコミットしたら、FTPでサーバにアップロードする自動化を1分で行う方法。

Last updated at Posted at 2017-11-14

GitLabがビルトインしているGitLabCIを使うと、.gitlab-ci.yml というファイルの設置だけで、とても簡単にデプロイの自動化を実現できます。

Git環境での作業効率化/自動化の、誰でも取り組めるTipsです。

1分でやりたい簡単なデプロイの自動化

要件は、

  1. マスターブランチにコミット
  2. リモートにプッシュ
  3. サーバーにアップロード

ということです。

.gitlab-ci.ymlを設置する

レポジトリのルートに .gitlab-ci.yml というファイルを追加します。やることは、このファイルの設置と書き換えのみなので、1分くらいでデプロイの自動化を実現できますね。

yaml.gitlab-ci.yml

variables:
  HOST: "example.com"
  USERNAME: "yourName"
  PASSWORD: "yourPass"
  LOCAL: "./your/dist/dir"
  SERVER: "./your/public_html"

deploy:
  script:
    - apt-get update -qq && apt-get install -y -qq lftp
    - lftp -c "set ftp:ssl-allow no; open -u $USERNAME,$PASSWORD $HOST; mirror -R $LOCAL $SERVER --parallel=10"
  only:
    - master

.gitlab-ci.ymlを書き換える

それぞれの環境に合わせるために、variables の項目を任意のものに書き換えます。LOCAL はレポジトリのデプロイしたいディレクトリ、SERVER はサーバーへのパスを記述します。

このファイルをマスターにコミットすると、GitLabCIが動くようになります。GitLabのデフォルトの設定で、.gitlab-ci.yml の有無で、GitLabCI が動くようになっています。

ここでは、lftp というツールをインストールし、それを利用してサーバに接続しています。mirror にいろいろなオプションを渡すことで、アップロードを制御できます。

これで、必要なことは終わりです。

ログとか見たい

デプロイのログは、GitLabの任意のレポジトリの中で、サイドバーの「CI/CG」 / 「Pipelines」から辿ることができるので、詳細を確認することができます。

ログから走らせたジョブをリトライをする、などの操作もできます。何かエラーが発生したときは、メールで通知が届くようになっています。

参考

GitLabCIは、いまのところ無料で利用できます、、GitLab素敵ですよね。

おわります。

26
27
3

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
26
27