원격 서버에 대한 git 푸시 자동화

내 github 저장소를 내 서버에 단계별로 배포합니다.

나는 git repo를 가지고 있습니다. 현재 작업 중인dev 분기를 업데이트하고 푸시할 때마다 서버에 ssh/로그인하고 서버에 변경 사항을 반영하도록 끌어와야 합니다.

또한 PM2 restart "myapp"을 실행하여 앱을 다시 시작해야 합니다. 때때로 내 앱에서 패키지를 추가하거나 제거할 때 yarn install도 실행해야 합니다.

푸시, 풀링, 원사 설치 및 마지막으로 내 앱을 다시 시작하는 이 모든 프로세스를 자동화할 수 있기를 바랍니다. 방법이 있습니까? 그런 것 같다. 설정해보도록 하겠습니다.

1. Bare Repo 만들기



서버에 로그인


ssh [email protected]

베어 리포지토리 설정


git init --bare /path/to/My_React_App.git

수신 후 훅 생성



나노/path/to/My_React_App.git/hooks/post-receive

그리고 다음과 같이 입력하십시오.

#!/bin/sh

# Check out the files
git --work-tree=/path/to/My_React_App --git-dir=/path/to/My_React_App.git/hooks/post-receive checkout -f dev


참고: 내 예에서는 로컬dev 분기를 원격dev 분기로 푸시하고 있습니다. 기본 브랜치(예: 기본 또는 마스터)에서 작업하는 경우 구성에 설정된 것이 무엇이든 브랜치 이름 전달을 생략할 수 있습니다.

중요한 단계:



다음을 설정하여 이 파일을 실행 가능하게 만드십시오.
chmod +x /path/to/My_React_App.git/hooks/post-receive

자신의 로컬 리포지토리 내에서 다음을 실행합니다.


git remote add Development 'ubuntu@<IP-ADDRESS>:My_React_App.git'
참고: ssh 키를 사용하여 서버에 로그인하는 경우 다음을 사용하여 Git 구성에서 키를 설정합니다.
GIT_SSH_COMMAND='ssh -i /Users/arvind/mykey.pem' git submodule update --init
그런 다음 푸시하십시오.
git push --set-upstream Development dev
모든 것이 제대로 작동하면 서버에서 로컬 앱 변경 사항을 볼 수 있어야 합니다.

Git Hook 푸시 후 작업 실행



앞서 언급했듯이 저는 이 수신 후 후크를 설정하려는 reactapp에서 작업하고 있었습니다. 따라서 모든 성공적인 푸시 후에 내 앱 폴더 내에서 다음과 같은 특정 명령을 실행하고 싶었습니다.
yarn install
pm2 restart "myapp"

고맙게도 이 두 줄 또는 세 줄의 코드를/path/to/ICOV3_React_Admin.git/hooks/post-receive 파일에 추가하는 것처럼 이러한 명령 실행을 자동화하는 것이 쉽습니다. 추가할 수신 후 파일 편집입니다.
cd /path/to/My_React_App
yarn install
pm2 restart "myapp"

참고: 내 앱 폴더에서 이 앱을 처음 실행하기 위해 동일한 이름으로 pm2 명령을 실행했다고 가정합니다. 그건:
pm2 start yarn --name "myapp" -- start

좋은 웹페이지 즐겨찾기