0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Actionsで自動デプロイを構築する

Posted at

アジェンダ

GitHub Actionsを使用して、コードの更新を自動的にステージング環境へデプロイする手順を簡単にまとめます。
このワークフローにより、mainブランチに変更がプッシュされた際に、サーバーへコードが自動展開されるようにします。

ステップ 1: リポジトリシークレットの設定

まず、デプロイ先のリモートサーバーにアクセスするための機密情報(ホスト、ユーザー名、SSH鍵、ポート番号など)をGitHubリポジトリに設定します。

  1. リポジトリページのSettingsに移動。
  2. Secrets and variablesActionsを選択。
  3. 次のシークレットを追加します:
    • SSH_HOST: 接続先サーバーのIPアドレスやドメイン名
    • SSH_USER: サーバーにアクセスするためのユーザー名
    • SSH_KEY: リモートサーバーへの秘密鍵(OpenSSH形式をbase64エンコード)
    • SSH_PORT: SSHで使用するポート(通常は22)

ステップ 2: GitHub Actions ワークフローの作成

次に、deploy.ymlという名前のGitHub Actionsファイルを作成し、ステージング環境へ自動デプロイを設定します。

name: Auto Deploy to Staging

on:
  push:
    branches:
      - main

jobs:
  deployment:
    name: Deploy to Server
    runs-on: ubuntu-latest
    steps:
      - name: SSH into server and deploy
        uses: appleboy/ssh-action@v0.1.7
        with:
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_KEY }}
          port: ${{ secrets.SSH_PORT }}
          script: |
            cd /var/www/html/myproject/
            git fetch --all
            git reset --hard origin/main

ステップ 3: ワークフローの解説

  1. nameフィールドで、このワークフローの名称を指定しています。GitHub上で表示される名称です。
  2. onフィールドでは、mainブランチにコードがプッシュされた場合にこのワークフローがトリガーされます。
  3. jobsセクションでジョブを定義しています。deploymentというジョブがubuntu-latestという仮想環境で動作します。
  4. stepsでは、appleboy/ssh-actionを利用して、SSH経由でサーバーに接続し、git fetchgit resetを使用してリモートリポジトリから最新のコードを取得し、ステージング環境に反映させます。

ステップ 4: サーバー設定

サーバー側では、Gitが正しくインストールされており、/var/www/html/myproject/ディレクトリがGitリポジトリとして設定されている必要があります。SSH公開鍵認証が有効で、適切なアクセス権限が設定されていることを確認してください。

まとめ

この手順を使用して、コードの更新がリモートサーバーに自動で反映される仕組みを簡単に構築できます。デプロイに必要なコマンドはプロジェクトに応じて変更できるため、柔軟にカスタマイズしてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?