GitHub ActionsでVPS(Lightsail)にデプロイしてみた

テストやデプロイの自動化に役立つGitHub Actionsを使ってみたかったので、試しにVPSに自動デプロイするというのをやってみた。

まず「Actions」ページの「set up a workflow yourself」をクリックする。

.github/workflowsにmain.ymlを作成する画面になるので、ワークフローを作っていく。

name: Deploying Website
on:
  push:
    branches:
      - main
jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    steps:
    - name: executing remote ssh commands using password
      uses: appleboy/[email protected]
      with: # アクションの入力パラメータを指定
        host: ${{ secrets.SSH_HOST }} # ホスト名
        username: ${{ secrets.SSH_USERNAME }} # SSH ユーザ名
        key: ${{ secrets.SSH_PRIVATE_KEY }} # 秘密鍵の内容
        script: |
          cd /opt/bitnami/wordpress
          git switch main
          git pull origin main

onでトリガーを設定する。今回はmainブランチにプッシュした時に実行する。
jobsに処理の内容を書いていく。
jobs.ジョブ識別子.runs-onでは、実行するOSをubuntu-latestwindows-latestmacos-latestから選べる。
jobs.ジョブ識別子.stepsにタスクの内容を書く。

今回はSSH Remote Commandsを使用するので、usesで使用するアクションを指定する。
アクションの入力パラメータであるhostusernamekeyを入力し、実行するコマンドをscriptに入力していく。
しかし、Git管理下のファイルにサーバーの接続情報を載せるわけにはいかないだろう。
そんな場合はシークレットを使用する。

「Setting」>「Secrets and variables」>「Actions」を開くと、シークレットの登録ができる。
ここにSSHの認証キーなどを保存しておくと、誰にも見られない。
呼び出す時は${{ secrets.シークレットの名前 }}みたいな感じで使える。

ちなみに

SSH Remote CommandsはまだIPv6での接続に対応していないらしいので、VPSの固定IPv4アドレスは必要だ。

参考

関連記事

コメント

この記事へのコメントはありません。

TOP