깃허브 액션을 통해 ci/cd를 알아보던 중 elastic beanstalk뿐만아니라 ec2에 직접 ssh연결을 통해 서버를 업데이트 하는 방법도 있어서 흥미로웠다.
메인 브랜치가 업데이트 될 시 ssh-action을 통해 스크립트들을 실행시키게 된다.
보안이 필요한 정보는 Github repository Settings에 Secret에 내용을 넣어 사용한다.
스크립트의 경우 |를 통해 여러개의 스크립트를 실행시킬 수 있다.
내가 사용한 코드
name: CD
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-20.04
steps:
- name: Checkout source code.
uses: actions/checkout@main
- name: Run scripts in server
uses: appleboy/ssh-action@master
with:
key: ${{ secrets.SSH_KEY }}
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
script: |
cd sparta/webserver
git fetch
git pull
sudo systemctl restart webserver
sudo systemctl restart nginx