ピックアップ

Github Actionsのシンプルな挙動を試した件

本番環境へのデプロイに関して、

自分なりに試そうとする中で、

再確認の意味を込めて、

Github Actionsを設定し直して、

試した時の個人用のメモ。

試した内容

試した内容としては、

  • ローカル環境でファイル修正
  • リポジトリに反映
  • サーバー環境に反映

という流れ。

このシンプルな流れを試す。

前提

前提としては、

  • SSHポートは実行時にオープン
  • SSH鍵情報はパスフレーズなし

という感じ。

試す時だけ、ポートいったん開けて、

鍵情報もとりあえず、

パスフレーズなしをこのために作って試しました。

実施内容

今回は、

HTMLファイル用意して、

それが反映されるかを確認。

HTMLファイルの中身は任意で省略。

ファイル構成は

├── .github
│   └── workflows
│       └── ci.yml
├── README.md
└── index.html

この感じ。

この中のworkflowファイルを準備。

name: Deploy to Production

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: Sample-github-actions
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Debug HOST secret
        run: |
          echo "===================="
          echo "HOST secret value: ${{ secrets.HOST }}"
          echo "===================="

      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1.0.0
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USER }}
          key: ${{ secrets.PRIVATE_KEY }}
          script: |
            cd /var/www/html/sample
            pwd
            ls -l
            git pull origin main

この中の

    environment: Sample-github-actions

ここに

Githubの管理ページで設定した、

SecretsのEnvironmentを設定。

これがないと、

うまくその中の変数が取得できなかった。

その変数を

        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USER }}
          key: ${{ secrets.PRIVATE_KEY }}

のように使っている。

これ、

SSHでの接続をしているので、

Githubの管理ページの方から、

  • 「Settings」- 「Secrets and variables」

にそれぞれを設定。

Nameが、HOSTやUSERのような変数名。

ここで作成する「Environments」が、

    environment: Sample-github-actions

となります。

基本的にこの設定と、

先ほどのコードで、

SSH設定が間違っていなければ、

問題なく、

Github Actionsで

サーバーにも反映できました。

ピックアップ

おすすめ書籍

コメント一覧

コメントはまだありません。

コメント送信

コメントを残す

広告

おすすめ記事