pushしたら自動でサーバー側でpullする
masterにpushされたときに
サーバー側でpullを行ってapachを再起動するようにしてます
name: Django CI
on:
push:
branches: ["master"]
pull_request:
branches: ["master"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Deploy-web
uses: appleboy/ssh-action@v0.1.7
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
script: |
cd ${{ vars.ROOT_DIR }}
git pull origin master
sudo service apache2 restart
pushしたらActionsの実行結果を確認できる!
${{ secrets.HOST }}とかの説明
${{ secrets.HOST }}
こんなフォーマット形式があるが、
GitのSettingsからsecrets
とvariables
を保存して、読み出すことができる。
Secretsの方は一度登録すると見れない仕様で、variablesの方は後から確認できます。
それぞれsecrets.name
,vars.name
のような感じでアクセスできます。
HostはサーバーのSSH接続するときとかのIPアドレス
USERNAMEはrootとかのログインユーザー名で
KEYは、秘密鍵を登録します。
公開鍵じゃないの?って思ったんですが、秘密鍵でした。
秘密鍵は、どこかで適当に作成して、
名前をgithub_actionsとかにしとくわかりやすいかなと思います。
鍵系は、
サーバー側にauthorized_keys
を保存して
Github側に、秘密鍵を登録する感じになります。
