[git] gitlab CI/CD to AWS EC2 (2)
·
기타/git
Gitlab CI operation sequence Git push || merge events occurs Start pipeline on Gitlab-Runner Pull images from docker hub Docker instantiate container according to image Git pull repository (target branch) Execute jobs on Gitlab-Runner Report the result to Gitlab-Server Why Gitlab-Runner use Docker as default? Isolation 실제 구동되고 있는 인스턴스와 무관하게 컨테이너에서 동작함. Flexibility Configuration 변경이 자유로움. Docker ..
[git] gitlab CI/CD to AWS EC2 (1)
·
기타/git
🎯 Goals gitlab-ci.yaml 파일 기본 설정을 해본다. gitlab 의 CI 모델의 개념을 파악한다. gitlab + AWS EC2 환경에서의 CI 전략을 세워본다. GitLab CI Models 하나의 리포지토리가 하나의 파이프라인을 갖는다. Pipeline 리포지토리의 루트에 존재하는 Yaml 설정 파일 다른 파이프라인에 알림을 보낼 수 있다. 하나의 파이프라인은 여러 스테이지를 가질 수 있다. Stage 작업의 단위로 '순차적'으로 실행된다. 여러 Job 을 갖는다. ex) Install, Build, Test, Deploy , Run Job 한 스테이지 내에서 작업의 단위. [CI 전략 수립] 브랜치마다 서로 다른 EC2 인스턴스에 배포한다. master => production in..
[git] tag
·
기타/git
피씨방에서 개발 환경을 한번에 세팅해주는 툴이 있다면 얼마나 좋을까? 작은 사이드 프로젝트 `auto-setup` 은 이런 생각에서 출발했다. 개발 환경에 필요한 install 파일을 한번에 다운로드 받아서 띄워주는 프로그램. 근데 한가지 문제가 있었다. 이 소스를 실행하려면 Go SDK가 필요했다. 💡 릴리즈를 하자. 애초에 모든 귀찮은 installer 파일을 자동 다운로드 받아주기 위해 만든 것인데 다른 파일(SDK) 을 또 받아야만 실행할 수 있다는 것은 모순이다. 그래서 그냥 바로 다운받아 실행할 수 있게 바이너리 실행파일을 배포해야겠다는 생각이 들었다. Python 이나 Javascript (Typescript) 는 python3, Node.js 같은 실행기가 없으면 실행되지 않는다. 그래서 ..
[git] 서로 다른 repository 합치기
·
기타/git
제목 그대로 서로 다른 2개의 repository 를 합쳐보자. 1. Base repository 열기 우선, 베이스 레포지토리를 연다. 2. 합칠 원격 repository를 추가한다. 3. Fetch from target repository 4. Integration 전용 branch 생성 그냥 베이스 브랜치에서 checkout 해도 된다. 5. Merge & Resolve conflict ⚠️ 서로 다른 저장소의 커밋 히스토리를 합치려(merge)하므로 에러가 발생한다. --allow-unrelated-histories 옵션을 주면 해결할 수 있다. 대부분 merge 하고나면 CONFLICT 에러가 발생할텐데 여기서는 수작업 하는 수 밖에 없다. 6. git push 이정도는 할 줄 알잖아? 7. 이..
[git] 이전 commit 로그 변경
·
기타/git
🔒 문제 상황 다른 컴퓨터에서 버전 관리 작업을 하다가 이런 식으로 user.name, user.email 을 설정하지 않은 채 commit을 해버리는 경우가 있다. 🔑 해결 방법 1. Interactive Rebase # 여기서의 COMMIT-HASH 는 # 내가 변경하고자 하는 커밋 이력의 '전' COMMIT 이어야한다. $ git rebase -i [COMMIT-HASH] 여기서는 'b19d6cc', 'aca3ccd' 의 commit 이력을 변경하고 싶다면 그 이전인 'c4f4bba' 로 rebase 해야한다. 2. edit 변경 대상 commit rebase -i 이때 commit 해시 앞에 'pick' 이 기본적으로 붙어있는데 'edit' 으로 변경해주면 해당 commit을 변경할 수 있다. 3..
[Error] git push Error (non-fast-forward)
·
기타/git
🔒 문제 상황 git push를 하려니 (non-fast-forward) 에러 메시지가 나왔다. 아래와 같은 메시지를 봤다면 이 글을 잘 찾아왔다. "Push was rejected, and update failed with an error" error: failed to push some refs to [git-repository-url] hint: Updates were rejected because the tip of your current branch is behind 직역하면 현재 당신의 브랜치 일부가 origin 브랜치의 뒤에 와있다는 뜻이다. 상세하게 분석해보기 위해 sourcetree 를 살펴봤다. 💡 아이디어 해결 방안 1. push --force ❌ 이전 포스트에서 본 것처럼 그냥 $ ..