1. はじめに
制作業務の効率化を目指し、「Antigravity」で生成したLPコンテンツ(記事コンテンツ)をGitHub Actions経由でXserver(WordPress運用環境)へ自動デプロイする仕組みを構築しました。
Antigravityからボタン一つで本番環境まで反映されるこのフローは、工数削減において圧倒的な威力を発揮します。本記事では、その全体像と構築時に直面した「ハマりどころ」を徹底解説します。
2. 自動化の全体アーキテクチャ
今回のフローは以下の3ステップで構成されています。
- Antigravity: LPのコンテンツ(HTML/画像等)を生成し、GitHubリポジトリへプッシュ。
- GitHub Actions: プッシュを検知し、Xserver(SSH)へのデプロイジョブを起動。
- Xserver (WordPress環境): 特定のディレクトリ(例:
/lp/)へファイルが自動配置され、即座にWeb公開。
この仕組みにより、手動でFTPアップロードを行う必要が完全になくなりました。WordPressへのログインも不要です。

3. GitHub Actionsのワークフロー構成
Antigravityから送られてきたデータを安全にXserverへ届けるための、最終的なYAMLコードがこちらです。
YAML
# .github/workflows/antigravity-deploy.yml
name: Antigravity Auto Deploy
on:
push:
branches:
- main
paths:
- '04_lp/**' # Antigravityからの出力先ディレクトリを指定
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy to Xserver via SSH
uses: easingthemes/ssh-deploy@v5.1.0
with:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SOURCE: "04_lp/" # Antigravityが書き出すフォルダ
REMOTE_HOST: ${{ secrets.FTP_SERVER }}
REMOTE_USER: ${{ secrets.FTP_USERNAME }}
REMOTE_PORT: "10022" # Xserver専用のSSHポート
TARGET: "/home/apptalenthub/apptalenthub.co.jp/public_html/lp/"
ARGS: "-rlgoDzvc -i --delete"
4. 構築時に苦労した「3つのハマりポイント」
① Xserverの「国外IPアクセス制限」による接続拒否
【現象】 正しい鍵を設定しているのに 530 Login incorrect や接続タイムアウトが発生。 【解決】 エックスサーバーのデフォルト設定では「国外(GitHub Actionsのサーバー群)からのSSH接続」が制限されています。サーバーパネルから「SSH設定」→「国外IPアクセス制限」をOFFにする必要があります。

② SSH秘密鍵のフォーマット不一致
【現象】 Load key: invalid format というエラーでデプロイが失敗する。
【解決】 GitHub Secretsに秘密鍵を登録する際、末尾に必ず空行(改行)を含めること。また、最新のOpenSSH形式で生成されているか確認が必要です。

③ .git フォルダ混入によるサブモジュール誤認
【現象】 fatal: No url found for submodule path が発生し、中身がデプロイされない。 【解決】 Antigravityからの出力ディレクトリ内に .git が残っていると、GitHub Actionsが別リポジトリと誤認します。事前に .git を削除するか、git rm --cached でインデックスをクリーンにする必要があります。
5. まとめ:このフローを導入するメリット
- 圧倒的なスピード: Antigravityで生成してから公開までが数分で完結。
- SEOの最大化: サブドメインではなく「サブディレクトリ」で展開するため、ドメインパワーを維持したままLPを量産可能。
- ミスの排除: 手動操作によるファイルの先祖返りや、アップロード漏れのリスクがゼロに。
AntigravityとGitHub Actionsを組み合わせることで、LP運用は「作業」から「自動化されたプロセス」へと進化します。同様の構成を検討中の方の参考になれば幸いです。



