GithubActionでXServerのLaravelへのdeploy.yml

条件

  • Githubに秘密鍵、XServerに公開鍵は登録済
  • 秘密鍵の名前はXSERVER_SSH_KEY
# .github/workflows/deploy.yml
name: Deploy to XServer

on:
  push:
    branches:
      - main  # main ブランチに push されたら実行

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v3

      - name: Setup SSH
        run: |
          mkdir -p ~/.ssh
          echo "${{ secrets.XSERVER_SSH_KEY }}" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          ssh-keyscan -p 10022 -H SSHホスト >> ~/.ssh/known_hosts

      - name: Deploy to XServer
        run: |
          ssh -p 10022 -o StrictHostKeyChecking=no SSHユーザー@SSHホスト <<EOF
          cd /home/サーバーID/プロジェクトパス
          git pull origin main
          composer install --no-dev --prefer-dist --no-interaction --optimize-autoloader
          php artisan migrate --no-interaction --force
          php artisan config:clear
          php artisan cache:clear
          EOF

開発環境でmainをプッシュすると本番環境に自動でデプロイされます。

結果は登録Eメール、GithubのコミットやActionsに出力されます。

ハマったこと

  • ポート指定を忘れた際はエラー表記はありますが、理由は記述されません・・・。

投稿者プロフィール

TakaharaRyuji
PAGE TOP