github actionsでec2内ソースコードを更新出来るようにしました。
git pullだと同じ認証でも失敗するのでgit cloneで今は更新しています。
(プライベートリポジトリだからいいけどPATを直書きしないとssh後のshellの処理で失敗するのがタマにキズ)
事前準備
githubで動作させたいリポジトリのsetting→actions→secretの画面まで移ってから
SSH_PRIVATE_KEY=接続対象のec2インスタンスのssh秘密鍵情報を入力
SERVER_HOST=接続対象のec2インスタンスのホストipを入力
SERVER_USER=接続対象のec2インスタンスのユーザを入力
SERVER_DIRECTORY=ソース展開ディレクトリを入力(/var/www)
name: Deploy to EC2
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up SSH
run: |
mkdir -p ~/.ssh/
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H ${{ secrets.SERVER_HOST }} >> ~/.ssh/known_hosts
- name: Deploy
env:
GIT_SSH_COMMAND: ssh -o StrictHostKeyChecking=no
run: |
ssh ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} "rm -rf ${{ secrets.SERVER_DIRECTORY }}/html && git clone -b main --depth 1 https://<PATを直接入力> ${{ secrets.SERVER_DIRECTORY }}/html"
参考:AWS(EC2)への自動デプロイをDeployerからGitHub Actionsに移行する
https://qiita.com/nakaji0210/items/5b609cb952e2dd5a88d1