FTPでファイルをアップロードするのが面倒くさい

今まで多くの人がそうであるように、

  1. サイト作成
  2. Githubに最新バージョンをプッシュ
  3. FileZillaをしようしてサーバーにデプロイ
  4. 修正
  5. Githubに最新バージョンをプッシュ
  6. FileZillaをしようしてサーバーにデプロイ

というフローを踏んでサイトを運用してきた。

が、これが面倒でしかたない。

どうせGithubにあげたものをデプロイするのであれば、プッシュと同時にデプロイができればいいのに…!

レンタルサーバーでもできるのか?

Firebase Hosting、Netlify …、などを使えばできることは知っている。

しかしレンタルサーバーでもできるのか?

正直レンタルサーバーは上記サーバーに比べて劣るイメージがある。

エックスサーバーで簡単にできた

まずはエックスサーバー万歳三唱🙌🙌🙌

本サイトはエックスサーバーを作っているのだが、エックスサーバーならGithub Action と連携できることを知った。

これで今までのフローとストレスと労力が半減された。

さらには常に最新バージョンがデプロイされるという先祖返りの危機もなくなった。

最後にエックスサーバー万歳三唱🙌🙌🙌

[sc name=“exserver_all_unlimited” ][/sc]

どうやって実現するのか

すごく簡単なので、特に考えすぎずに実行してほしい。

エックスサーバー側の設定

特にないけれど、エックスサーバーのサーバーパネルで

  • ftpサーバのホスト
  • ftpサーバのアカウント名
  • ftpサーバのパスワード

を確認してメモをしておく。

参考:FTPソフトの設定 | レンタルサーバーならエックスサーバー

Github側の設定

対象リポジトリのSettings > Secrets に下記情報を入力する。

FTP_PASSWORD → ftpサーバのホスト

FTP_SERVER → ftpサーバのアカウント名

FTP_USERNAME → ftpサーバのパスワード

deploy.ymlの作成

対象リポジトリ直下に.github/workflows/ディレクトリを作成し、その下にdeploy.ymlファイルを設置する。

そこに下記情報を入力すれば完了。

on:
push:
branches:
- main
name: Deploy
jobs:
FTP-Deploy-Action:
name: FTP-Deploy-Action
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- name: FTP-Deploy-Action
uses: SamKirkland/FTP-Deploy-Action@2.0.0
env:
FTP_SERVER: ${{ secrets.FTP_SERVER }}
FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
LOCAL_DIR: ./
REMOTE_DIR: /デプロイ対象のサイト/public_html/

あとはmainブランチにプッシュする、ただそれだけでサイト運営が嘘のように楽になる。

ぜひ、試してみてはどうでしょうか。

エックスサーバーができるので、当然他のレンタルサーバーでもできるのかもしれないが、上記方法はエックスサーバーでの方法になるので、悪しからず。