JINIers
GitLab 저장소 → Cloud Source Repositories 로 미러링(CI방법) 본문
수정
221111 : pull, push 개념 작성
하 이거 정말 힘들었다. ㅜㅠㅜ
깃랩을 소스리포지터리에 연동해서 미러링이 되는지 보는건데 이게 안되서 리포지토리를 몇개를 설치했다 지웠는지..
그와중에 다른분 리포지토리와 함께 꼬여서(명령어 입력하다가 모르고 지워버림;;) 너무 죄송했쟈나..
무튼 이건 많이 쓰일 것 같아서 고생한만큼 기록하기
※ 참고링크
대충 내가 이해한 미러링 개념
일단 3번은 시도했을 때 안되는 걸로 확인했는데..
다른 방법이 있을 수도 있음
내가 잘못 시도 했을수도..
내가 모를 수도....
떠올리지 못했을 수도..
내가 무지했을 수도..
내가 감히..
내가 또 잘못을..
pull : vs code에서 작성된 코드 파일들을 가져오는 거 / 데이터 가져오기 명령어라고 보면 됨
push : 작성한 파일이나 코드를 내보내는 거
대충 pull / push의 개념을 생각해보면 이건 된단 소리다.
일단 개념을 이해하고 있어야 CI를 하기 쉽다.
이 구성을 사용하면 gitlab 저장소로 푸시한 커밋이 cloud source repositories에 호스팅되는 저장소로 자동으로 복사되거나 미러링된다.
[소개 : gitlab을 기본호스트로 사용할 때 장점]
- 지속적인 빌드, 테스트, 배포를 위해 cloud build와 통합
- cloud functions 및 app engine에 배포 등
사전작업 : gitlab 생성
1. cloud source repositories에서 git 저장소 만들기
source repositories 생성
gcloud source repos create [사용할 scr이름]
* gitlab repository 이름과 gcp scr에서 사용할 이름은 별개다
gitlab repository name ≠ gcp scr name
검색창 : source repositories > 리포지토리 확인 > 생성한 리포지토리 클릭('song-git-3') >
을 누르면 뭐 하라고 블라블라 뜨는데 거기서 '정적 사용자 인증정보 생성' 탭을 눌러 인증한다.
* 무조건 1번 먼저 해줘야함
계정 액세스 : 허용
* 계정을 허용하면 이런 창이 뜰 것이다. 그럼
configure git : 복사 → shell에 붙여넣기
이거 보기 어려우니까
생성된 사용자 인증정보에서 비밀번호 추출
grep 'source.developers.google.com' ~/.gitcookies | tail -1 | cut -d= -f2
사용자 이름을 CSR_USER 환경변수에 저장
CSR_USER=$(grep 'source.developers.google.com' ~/.gitcookies | \
tail -1 | cut -d$'\t' -f7 | cut -d= -f1)
저장소의 URL을 CSR_REPO 환경변수에 저장
CSR_REPO=$(gcloud source repos describe [설정한 gcp scr이름] --format="value(url)")
사용자 이름을 포함하여 저장소의 url을 콘솔로 출력
echo $CSR_REPO | sed "s/:\/\//:\/\/${CSR_USER}@/"
* cloud shell은 끄지 않는다.
2. 미러링 설정
이제 gitlab으로 가자
gitlab > setting > repository >
mirroring repositories > expand
그럼 밑에 이런게 뜨는데 아까 cloud shell에서 추출했던 password와 url을 입력해준다.
git repository url 입력 > password 입력 > mirror repository 눌러
* 1// 이거 빼먹으면 안됨!!
그럼 이 밑에 쨔라랑 하고 미러링이 된게 뜬다.
그 다음에 아래 가이드를 참고해서
2번부터 차례대로 해주는데 이걸 그냥 하면 에러가 남(젠장
git push -u origin master
git push -u origin main
그렇기때문에 이걸 해준다.
git config user.name "이름 넣어"
git config user.email "이메일 넣어"
* git confit --global user.name & user.email을 해줘도 되지만 이러면 수정이 불가함.
사용자와 이메일을 유동적으로 변경해주고 싶다면 --global을 빼고 설정해주도록 하자.
설정 후 다시
git push -u origin main
master가 에러가 나면 main으로 한다.
안되면 나는 멍충인가 하며 자책을 한번 한 뒤에
git pull origin main
git pull origin master
이걸 해 준다.
* master인지 main인지 확인 방법
gitlab > repository > files > README.md > edit > target branch 확인
3. 미러링 확인
source-repositories 새로고침 하면 빈창이 뜰것임
그렇지만 당황하지말고
HEAD > Branch > main 을 누르면
미러링된 파일이 쨔란 하고 뜬다.
* 왜 git-3으로 만들었으면서 캡처는 git-2 보여주냐 하지마
이미 연동되어있어서 그런거임
그렇담 정말로 미러링이 잘 되는건지 확인해보자.
비주얼스튜디오코드 > test.txt에 입력 내용입력 & 수정,추가
그리고 test 파일을 스테이징 > commit
commit 내용 확인 > push
미러링이 됐는지 확인하면 history에서 확인할 수 있다.
하 너무 힘들었어 이거 진짜 만들기도 번거롭고 그랬지만 만들어놓고나면 생각보다 간편하다는게..
그리고 이렇게 할 수 있는 방법을 배우고 적용한다는 것만으로도 충분히 공부가 되었다고 생각
덕분에 부장님을 열심히... 괴롭히고...괴롭히고....괴롭.. 아니고요.
한번 해놓으면 써먹기 편함
나중에 비주얼스튜디오코드랑 깃랩&깃허브랑 연동방법도 정리해야겠다.
배워서 설정은 했지만 기억이 안나는관계로... ;;ㅁ;;
* 221111
gitlab에서 scr로 푸시하면 생기는 문제점
1. 연동이 느림(5~10분정도)
2. commit, push, sync 해도 scr로 연동되지 않음(vscode → git으로는 미러링 완료)
▶ 해결
git → settings → repository → mirroring repositories를 연다 → 강제 동기화 해줌
찾아보니 gitlab 말고도 github도 이런 문제가 발생하는 것 같다.
그래서 깃허브도 강제로 동기화 해주던데 깃랩도 마찬가진인듯
git의 문제인걸까..
대충 한 3번 중 1번정도는 동기화가 안되는 문제가 발생하니..
무튼 강제동기화 해주면 잘 들어간다.
'GCP > 구성연습' 카테고리의 다른 글
gitlab branch 생성 및 gcp source repository 에 미러링 1 (0) | 2022.06.29 |
---|---|
220623 DevOps 파이프라인 빌드(not 퀵랩) (0) | 2022.06.23 |
Cloud Function (0) | 2022.06.16 |
jupyterlab 이용 빅쿼리 호출하기(Bigquery → Vertex AI) (0) | 2022.05.26 |
json data → pub/sub 전송 (0) | 2022.05.12 |