webmanab.html

menu

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

 

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

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

GitLabとは

GitLabは、ポストGitHubなGitのリポジトリをホスティングをするアプリケーションです。
サーバーを用意してインストールすることもできるのですが、今回は便利で気軽にブラウザ上で利用出来る GitLab.com を前提とします。

GitLabは無料で利用できることが充実していて、非公開のプライベートプロジェクトを作れますし、今回紹介するCI/CDも上限はありますが無料です。

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

要件は、

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

ということです。

.gitlab-ci.ymlを設置する

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

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はテストの自動化など、かなり複雑なCI(継続的インテグレーション)を実現できるらしいです。が、それに取り組む前に、知識がなくても簡単に実現できる自動デプロイの紹介でした。

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

おわります。

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

share

tip