📖

github actionsを用いたFTP自動デプロイ。(例:さくらサーバー)

2021/12/31に公開

何について書く

git pushと同時に、さくらサーバーへ自動デプロイする仕組み
FTPしか使用できないサーバーにも自動デプロイ組めるので便利です。

内容

  • github actionsの仮想マシンからftpでデプロイしてくれるライブラリを使う

  • step1 さくらサーバー側の準備(さくらサーバーを使用しない方は飛ばしてください)

    • 国外IPアドレスフィルタを無効にする
    • FTPアカウント情報を確認(変更してなければさくらサーバー契約時のメール)
    • デプロイ先となる公開ディレクトリのパスを確認
  • step2 githubの対象リポジトリのsettingsのsecretsを準備

    • step1で確認した内容を転記するが、一番の注意点は公開ディレクトリ
      • 今回の例の場合、さくらサーバーでは~www/testと書いてあるが、secretsに登録する   FTP_SERVER_DIRには~www/test/というようにライブラリの仕様上、最後に/を付ける必要がある。
  • step3 githubの対象リポジトリのactionsで設定ファイルを作成

    • この例の場合mainへマージ後1回actionsが実行されます。
      • 初回デプロイはプロジェクトファイル全てなので、時間かかります。
    • 上記書き換える内容(今回は最低限で記載。細かい設定したい場合は前述のドキュメントをご確認ください)
name:  # 名前1(※お好きな名前をつけてください)
on:
  push:
    branches:
      - main()


jobs:
  deploy:
    name: # 名前2(※お好きな名前をつけてください)

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Sync files
        uses: SamKirkland/FTP-Deploy-Action@4.1.0 #(※21年12月31日時点最新版は4.2です)
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: ${{ secrets.FTP_SERVER_DIR }}
  • step4 実行
    • step3でyamlにて設定した名前1と名前2はgithub actions実行後このように見えます。
    • 2回目以降のデプロイは、差分で反映するため早いです。

参考サイト

https://olein-design.com/blog/push-to-github-and-ftp-upload-to-server-at-the-same-time
https://github.com/SamKirkland/FTP-Deploy-Action

Discussion