ChatGPTとの会話ログ2024-11-20
yuyuko.icon
GitHub Actionsを使って、GitHubのリポジトリを更新するたびに自動でFTPデプロイを行い、ウェブサイトを更新したいと考えています。コードを書くのを手伝ってください。
/icons/hr.icon
ChatGPT.icon
GitHub Actions を使って FTP デプロイを自動化する方法をお手伝いします!以下に基本的な構成を示します。GitHub Actions のワークフロー( .github/workflows/deploy.yml )を設定して、リポジトリが更新されるたびに FTP デプロイを実行できるようにします。
ステップ 1: 必要な情報を確認する
FTP デプロイには以下の情報が必要です:
FTP サーバーアドレス(例: ftp.example.com)
FTP ユーザー名
FTP パスワード
デプロイするディレクトリ(例: /public_html)
ステップ 2: シークレットを設定する
FTP の資格情報を GitHub リポジトリのシークレットに登録します。
1. GitHub リポジトリのページを開きます。
2. 「Settings」→「Secrets and variables」→「Actions」を開きます。
3. 以下のキーを登録します(各自の情報に置き換えてください):
FTP_SERVER: FTP サーバーアドレス
FTP_USERNAME: FTP ユーザー名
FTP_PASSWORD: FTP パスワード
ステップ 3: ワークフローのコードを作成する
.github/workflows/deploy.yml ファイルを作成し、以下のコードを追加します。
code:deploy.yml
name: FTP Deploy
on:
push:
branches:
- main # main ブランチに push されたときに実行されます
jobs:
ftp-deploy:
runs-on: ubuntu-latest
steps:
# リポジトリをクローン
- name: Checkout repository
uses: actions/checkout@v3
# FTP デプロイを実行
- name: Deploy via FTP
uses: SamKirkland/FTP-Deploy-Action@v4
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
protocol: ftp # 他に sftp なども指定可能
local-dir: ./ # リポジトリのルートからデプロイする
server-dir: /public_html # FTP サーバー上のデプロイ先ディレクトリ
ステップ 4: ワークフローを保存
このファイルをリポジトリにコミットすると、main ブランチにコードをプッシュするたびに自動で FTP デプロイが実行されます。
詳細なポイント
yuyuko.icon以下、解説
これで、GitHub リポジトリの更新に合わせた自動デプロイが可能になります!必要に応じてカスタマイズもできますので、気軽に質問してください 😊
/icons/hr.icon
yuyuko.icon
ありがとうございます。デプロイの前に、静的サイトジェネレーターであるHugoを用いてサイトをビルドしたいです。ビルドのコマンドは、hugo --minify -D です。先ほどのコードをどのように書き換えればよいですか。
-Dは間違えてつけちゃったやつ
サーバーたてて確認するときにいつも -D つけてたからついつけちゃった
/icons/hr.icon
ChatGPT.icon
Hugo を使って静的サイトをビルドしてから FTP デプロイを行う場合、以下のようにワークフローを変更すれば対応できます。Hugo のビルドステップを追加し、ビルド済みのディレクトリを FTP デプロイ対象に設定します。
以下に修正済みのワークフローコードを示します。
code:deploy.yml
name: Hugo Build and FTP Deploy
on:
push:
branches:
- main # main ブランチに push されたときに実行されます
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# リポジトリをクローン
- name: Checkout repository
uses: actions/checkout@v3
# Hugo をセットアップ
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest' # 必要な Hugo のバージョンを指定(例: '0.117.0')
extended: true # Hugo extended が必要な場合は true
# Hugo で静的サイトをビルド
- name: Build site with Hugo
run: hugo --minify -D # ビルドコマンド(下書き記事を含める場合は -D)
# FTP デプロイを実行
- name: Deploy via FTP
uses: SamKirkland/FTP-Deploy-Action@v4
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
protocol: ftp # FTP を使用
local-dir: ./public # Hugo のデフォルトの出力ディレクトリ
server-dir: /public_html # FTP サーバー上のデプロイ先ディレクトリ
詳細な変更点
yuyuko.icon以下、解説
このワークフローは、Hugo を使った静的サイトのビルドとその自動デプロイに対応しています!不明点や追加のカスタマイズが必要であれば、気軽に聞いてください 😊