• 公開日: 2024-05-22
  • 最終更新日:

レンタルサーバーにアップロードするのをGitHubだけで自動化しよう!

汎用的なOGPもしくはアイキャッチ画像

はじめに

「サイトを更新するたび、FTPでアップロードするの面倒くさいな…」
と皆さん思った事ありませんか?。
実はGitHubだけで自動でサーバーにアップロード(以下デプロイ)してくれるんです!。
その自動デプロイしてくれるプラットフォームは、「GitHub Actions」といいます。
今回はこのGitHub Actionsを使って自動デプロイする方法を紹介していきます。

使用サーバー: さくらのレンタルサーバー

必要な物

  • GitHubアカウント
  • GitHubのリポジトリ
  • 自動デプロイする対象のサーバー

なお、今回はGitをGitHubに連携するところは省略しています。

GitHub Actionsとは?

GitHub上のイベント(例:pushなど)をトリガーに動作する、
デプロイなどを自動化するためのプラットフォームです。
無料です。

全体の流れ

  • GitHub Actionsに使うsecretsの作成
  • Actionsメニューからワークフローの構成ファイルを作成

secretsとは?

secretsとは、リポジトリ内の構成ファイルに書き込めないFTPのパスワードなどの
秘密情報を記載して、構成ファイルの環境変数として利用できるものです。
これを使うことによって、平文でパスワードなどを記載する必要がなく、
より安全にデプロイできます。

GitHub Actionsに使うsecretsを作ろう

リポジトリの Settings > Security > Secrets and variables > Actions から
「New repository secrets」をクリックして、作成画面が出ると思うので、secretsを作成してください。
Nameが環境変数に使う名前で、Secretが環境変数の中身です。

GitHubのリポジトリの管理画面
Settings > Security > Secrets and variables > Actions
GitHubのリポジトリの管理画面 Secretの作成

記載するもの

各自、FTPのユーザー名と、パスワードと、サーバー名と、
サーバーのアップロード先のディレクトリを記載してください。

  • FTP_SERVER
  • FTP_USERNAME
  • FTP_PASSWORD
  • SERVER_DIR
GitHubのリポジトリの管理画面 secretsを作成し終わったあと

こんな感じにできたら、次のステップに行きます。

今回使う構成ファイルのコード

on: push
name: 🚀 Deploy website on push
jobs:
  web-deploy:
    name: 🎉 Deploy
    runs-on: ubuntu-latest
    steps:
    - name: 🚚 Get latest code
      uses: actions/checkout@v4
    
    - name: 📂 Sync files
      uses: SamKirkland/[email protected]
      with:
        server: ${{ secrets.FTP_SERVER }}
        username: ${{ secrets.FTP_USERNAME }}
        password: ${{ secrets.FTP_PASSWORD }}
        protocol: ftps
        server-dir: ${{ secrets.SERVER_DIR }}

使いそうなオプション

オプション説明
port990デフォルトでは21ですが、変更が必要な場合は、変更しておきましょう。
protocolftpftpのプロトコルを指定します。現在は殆どのレンタルサーバーでftpsが提供されてるのでftpsを使いましょう。

https://github.com/marketplace/actions/ftp-deploy のコードを参考に制作

海外アクセス規制があるなら事前に解除しておこう

さくらのレンタルサーバーのように、初期設定では海外のFTPのアクセスを拒否している場合があります。
その場合は解除してください。

https://help.sakura.ad.jp/rs/2260/
さくらのレンタルサーバー管理画面 国外IPアドレスフィルタ

リポジトリにワークフローを作ろう

リポジトリのActions > set up a workflow yourself をクリック

GitHubのリポジトリの管理画面 Actions > set up a workflow yourself

そしたらこんな感じの画面が現れると思うので、さっきのコードを貼り付けてください。

GitHubのリポジトリの管理画面 ワークフローの構成の作成画面

貼り付けたら右上のコミットボタンを押し、
適当なメッセージをつけてコミットしてください。
コミットしたら、その後自動でデプロイされます。

GitHubのリポジトリの管理画面 ワークフローの構成の作成画面 作成し終わったので、コミットしようとしている
GitHubのリポジトリの管理画面 ワークフローの構成の作成画面 、コミットメッセージ入力画面

これが緑色だったら、デプロイが成功しています。

茶色だったら、保留中(デプロイ中)です。

赤色だったら、デプロイが失敗してます。
極稀に失敗することがあるのでもう一回やってみましょう。
何回も続くようだったら、secretsなどを見直してみましょう。

GitHubのリポジトリの管理画面 Actionsメニュー

まとめ

自動デプロイだからといって速度も遅いということもない(上記の画像では21秒)ので、
どんどん自動デプロイを使っていきましょう!。

今回は初心者の方でもわかりやすように、自動デプロイについて紹介してみました。
参考になったら幸いです。

よかったらグッドボタン&シェアお願いします!

コメント機能(仮)

送信したコメントは承認作業を行うまで表示されません。ご了承ください。
なお名前の入力は任意でメールアドレスの入力も必要ありません。 CAPTCHA(画像認証)の文字が表示されない場合は再リロードしてください。

CAPTCHA


記事の削除依頼や修正依頼については、問い合わせにて受け付けております。
ぜひお気軽に問い合わせください。

筆者のプロフィール

profile-img

名前: Otusoaオツソア (本名: 小林 栄太)

主に1年半ぐらい趣味でWebサイトを作っています。
このブログは痒い所に手が届くニッチな技術を提供します。
当サイトでは、自分の好きなようなことをマイペースに発信していきます。
※私は謎の備忘録おじさんではなく、謎の備忘録お兄さんです(2009年生まれ)

Contact