레포지토리 > Settings > Actions > Runners > New Self-hosted runner
페이지 하단에 명시된 명령을 수행해 배포 서버에 actions runner를 설치한다.
배포 서버에 actions runner를 설치하기 전에 먼저 새로운 계정을 만들고 해당 계정으로 로그인해야 한다.
다음으로 pm2로 actions runner를 실행한 뒤 startup 프로세스로 등록한다.
su action
cd /home/action/actions-runner
pm2 start -n github-actions-runner run.sh
pm2 save # startup 프로세스로 등록
테스트용 .github/workflows/main.yml
생성
name: 배포
on:
push:
branches: [main]
jobs:
deploy:
runs-on: self-hosted
steps:
- uses: actions/checkout@v3
- run: echo "안녕"
push해서 action이 잘 작동하는지 확인
배포 action 생성
main.yml
name: 배포
on:
push:
branches: [main]
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
REDIS_HOST: ${{ secrets.REDIS_HOST }}
REDIS_PORT: ${{ secrets.REDIS_PORT }}
REDIS_PASSWORD: ${{ secrets.REDIS_PASSWORD }}
jobs:
deploy:
runs-on:
self-hosted
steps:
- name: 체크아웃
uses: actions/checkout@v3
- name: client 모듈 설치
working-directory: ./client
run: npm install
- name: client 빌드
working-directory: ./client
run: |
npm run build
rm -rf /var/www/build
cp -rf ./build /var/www/
- name: server 모듈 설치
working-directory: ./server
run: npm install
- name: server 환경변수 파일 생성
working-directory: ./server
run: |
echo DATABASE_URL=$DATABASE_URL > .env
echo REDIS_HOST=$REDIS_HOST >> .env
echo REDIS_PORT=$REDIS_PORT >> .env
echo REDIS_PASSWORD=$REDIS_PASSWORD >> .env
- name: pm2 프로세스 재실행
working-directory: ./server
run: pm2 restart japari