Antigravity × GitHub Actionsで実現!XserverへのLP自動投稿・デプロイガイド

1. はじめに

制作業務の効率化を目指し、「Antigravity」で生成したLPコンテンツ(記事コンテンツ)をGitHub Actions経由でXserver(WordPress運用環境)へ自動デプロイする仕組みを構築しました。

Antigravityからボタン一つで本番環境まで反映されるこのフローは、工数削減において圧倒的な威力を発揮します。本記事では、その全体像と構築時に直面した「ハマりどころ」を徹底解説します。

2. 自動化の全体アーキテクチャ

今回のフローは以下の3ステップで構成されています。

  1. Antigravity: LPのコンテンツ(HTML/画像等)を生成し、GitHubリポジトリへプッシュ。
  2. GitHub Actions: プッシュを検知し、Xserver(SSH)へのデプロイジョブを起動。
  3. 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運用は「作業」から「自動化されたプロセス」へと進化します。同様の構成を検討中の方の参考になれば幸いです。

この記事を書いた人

宮崎翼

愛媛県出身・東京都在住。
国立工業高専(新居浜工業高等専門学校)卒業後、外資系ソフトウェア企業などで法人営業・IT導入支援に従事し、BtoB領域で多様な新規開拓やエンタープライズのDX推進を経験。

現在は「AppTalentHub」の理念、ノーコード/ローコードを活用したアプリ開発の標準化と、エンジニアのスキルの可視化による適正評価を実現するためのプロジェクトやコミュニティ運営に取り組んでいます。
https://tsubasa.tech/about