전단 의 길: github 의 webhooks 로 프로젝트 자동화 구축 실현
배경
회사 가 github 으로 프로젝트 를 관리 하고 이 프로젝트 (순수 정적 및 node APP 포함) 는 대부분 우리 가 서버 에 배치 한 것 이다.
필드:
코드 쓰 는 데 몰두 하고 있 는데 갑자기...
xxx
프로젝트 는 물건 을 바 꾸 는 것 이 간단 하 다 (예 를 들 어 그림, 버튼, 문안 등) test
가 지 를 자 르 고 변경 한 후의 테스트 절차:git add .
git commit -m fix(xxx): xxx
git fetch upstream test
git rebase upstream/test test
합병 충돌 후 git push upstream test
이상 은
test
분기 코드 를 github 에 동기 화 했 을 뿐 이 고 그 다음 에 서버 pull
코드 에 올 라 프로젝트 를 다시 시작 해 야 합 니 다.ssh ubuntu@xxx
tmux a -t xxx
git checkout test
git log
git pull origin test
npm run build:test
지금 성공 적 으로 테스트 에 올 랐 습 니 다. 효 과 를 보 세 요. 문제 가 없 으 면 생산 에 올 라 가 야 합 니 다. 절차 와 위 에 차이 가 많 지 않 습 니 다. 먼저 생산 (제 것 은:
next
지점 에서 생산 절차 입 니 다.git fetch upstream next
git rebase upstream/next next
git merge test
, 합병 충돌 후 git push upstream next
이상 은
next
분기 코드 를 github 에 동기 화 한 다음 에 서버 pull 코드 를 올 려 프로젝트 를 다시 시작 해 야 합 니 다.ssh ubuntu@xxx
tmux a -t xxx
git checkout next
git log
git pull origin next
npm run build:next
마침내 지도자 가 맡 긴 임 무 를 완 수 했 습 니 다. 작은 변경 을 위해 이렇게 많은 절 차 를 사 용 했 습 니 다. 너무 아 프 지 않 습 니까? 잠시 후에 pm 가 다시 달 려 와 서 고 칠 곳 이 하나 더 있다 고 말 했 습 니 다.이상 의 경험 이 있 습 니까?
너무 번 거 롭 습 니 다. 개발 을 간소화 하기 위해 js 는 이미 공정 화 방면 에서 잘 했 습 니 다. 몇 년 전
grunt
부터 glup
, 그리고 지금까지 webpack
, 그리고 rollup
까지 성숙 했다 고 할 수 있 습 니 다. 하지만 프로젝트 배 치 는 많은 전단 파트너 들 이 접촉 하지 않 았 을 수도 있 습 니 다. 파일 dist
을 포장 해서 백 엔 드 에 떨 어 뜨 렸 을 수도 있 습 니 다.그 다음 에 저 는 이런 번 거 로 운 절 차 를 어떻게 간단하게 최적화 시 키 는 지 말씀 드 리 겠 습 니 다.
ci
에 의존 하지 않 고 webhooks
을 통 해 간단하게 실현 하 는 지 말씀 드 리 겠 습 니 다.그럼 웹 훅 이 뭐 예요?
흐름
git push xxx
로 컬 코드 를 원 격 github 창고 에 제출 Payload url
보 내기 요청 Payload url
기반 서 비 스 는 전 송 된 정보 에 따라 추출 하고 최신 코드 를 추출 하여 프로젝트 를 재 구축 합 니 다 github-hook
: 목록: .
├── README.md
├── config
│ ├── data.example.js
│ ├── data.js ( dir/ / )
│ └── index.js ( secret, github webhooks )
├── ecosystem.config.js (pm2 )
├── package-lock.json
├── package.json
└── src
├── controlers
│ └── token.js ( token,webhooks )
├── index.js ( )
├── jobs
│ └── index.js ( , )
└── routes
└── index.js ( , )
github-hook
서비스/var/nodejs
. 취향 에 따라 고 칠 수 있 습 니 다. 해당 하 는 config/data.js
파일 을 고 치 는 것 DIR
git clone xxxgithub-hook.git
cd github-hook
npm i
npm run start
, pm2 를 사 용 했 습 니 다. 먼저 전체 pm2 curl ip:9002
, success 라 는 글자 가 있 으 면 성공/index.js
. 안전 팀 의 오픈 포트 http://ip:9002/payload/{reponame}
을 입력 하 십시오. 여기 있 는 repo name 은 github-hook
/config/index.js
의 appSecrcet
와 일치 github-hook
을 테스트 하고 제출 한 다음 에 방금 github 페이지 를 열 어 아래 에 Recent Deliveries 가 있 는 지 확인 합 니 다. pull
코드, 서 비 스 를 재 개 하고 로 컬 에서 코드 를 제출 하면 배 치 를 재 구축 할 수 있 습 니 다. 효율 을 높 일 수 있 습 니까?ci
시스템 에 의존 해 야 합 니 다. 버 전 반환, 유닛 테스트 등 이 더욱 완선 되 어야 합 니 다. 즉, 제 가 다음 에 말씀 드 리 고 싶 은 것 은 docker
용기 에 프로젝트 를 넣 고 jenkins
포장 으로 부서 프로젝트 를 구축 하 는 것 입 니 다. 다음으로 전송:https://juejin.im/post/5c6e37056fb9a049e702b443
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
전단 자동화 워 크 플 로 의 hooks예 를 들 어 우 리 는 git commt 전에 eslint 코드 검사, npm install 전에 프로젝트 의존 도 를 검사 하고 싶 습 니 다.전형 적 인 상황 에서 각종 도 구 는 특정한 동작 이 발생 할 때 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.