- github에 코드를 커밋
- Jenkins에서 코드를 Pull해서 사용한다.
- Jenkins에서 maven을 이용해 빌드
- maven, 실행상태로 패키징한다.
Continuous Intetration
- 개발자가 소스코드를 개발
- 빌드(BUILD): 패키징 (실행파일)
- 테스트(TEST)
- Merge: 아카이브, 도커 이미지 등으로 패키징해 저장소에 올린다. PUSH
- 모니터링중, 트리거(유발) 이벤트가 발생하면, 다음 작업으로 넘어가게 된다.
- 지속적으로 모니터링, 이벤트가 있다면 다음으로 넘어가는 방법으로,
- Jenkins에서는 linux의 크론이라는 작업스케줄러를 사용해서 github를 관찰(리스너)하고 있다가, 소스코드가 변경되면, Maven으로 넘어간다.
- 개발자가 소스코드를 개발하면, 테스트, 머지 과정을 거쳐 자동으로 최종 배포까지 이어지는 과정이 CI/CD이다.
Continuous Delivery
- 도커허브와 같은 Repository에 자동 업로드하는 과정
Continuous Deployment
- 최종 배포, 자동으로 제품에 배포되어 업데이트되는 것
- 소스코드의 버전 관리
- 공동작업을 위한 도구이다.
- 내 환경이 아닌, 인터넷환경에서의 저장소가 Github이다.
Git Hub repository 생성
- 중복되지 않는 이름을 넣어주고 Create Repository한다.
- https://github.com/jo1132/test-dev.git
- 앞으로 사용하게 될 github repository 주소다.
- https://git-scm.com/downloads
- 설치중에 제일 아래 (NEW!) Add a~~ 체크해준다.
- 이후 과정은 모두 Next -> Install 을 눌러준다.
- 이렇게 Linux CLI 환경과 비슷한 창이 나온다.
- Linux 기본 명령어들이 먹힌다.
- git init
- Initialize, 이 폴더를 git을 사용한다고 정의해준다.
git add, commit
- .git폴더에 작업자(나)에 대한 정보를 기록한다.
- 또, README.txt를 git에서 기록하게 등록한다.
- 지금의 변경사항을 commit해서 저장해준다.
- 즉, 어떤 변경이 일어나면, ADD와 Commit이 진행되어야 한다.
- README.txt에 인사말을 추가해서 ADD, Commit해봣다.
git log
- 지금까지 commit한 기록을 볼 수 있다.
checkout
- log에서 logID를 통해 rollback할 수 있다.
- Aloha가 있는 버전에서 없는 버전으로 롤백되었다.
- 또,
git checkout -
-를 넣는 방법으로 바로 이전 버전으로 돌아갈 수 있다.Delivery
- add, commit, checkout은 내 컴퓨터 환경에서 버전관리를 하는 것이다.
- 오늘의 작업을 끝내거나, 다른 이유로 외부 저장소에 저장할때는 Github에 올려야한다.
git remote add origin https://github.com/jo1132/test-dev.git
- remite : 원격 저장소를 뜻한다.
- 현재 위치를 github의 원격 저장소와 연결시켜준다.
git push -u origin master
- github 저장소에서도 main, master등 가지치기(Branch)를 할 수 있다.
- 그러나 최초 push를 진행할 떄 로그인을 해줘야 한다.
- 과거에는 ID. PW를 입력했지만, 최근에는 Token을 사용하게 되었다.
- Token을 만들어서 사용한다.
Token 생성
- 여기서 새로운 토큰을 만들어준다.
- 한번 만든 토큰은 재발급이 안된다.
- Note를 간단하게 입력해준다.
- Expiration은 인증 기간인데 기본값 30일로 한다.
- 권한은 repo권한만 부여하고 나머지는 체크하지 않는다.
- 이후 토큰을 생성하고, 이 토큰을 복사해서 로그인해준다.
- 로그인해주니, Push가 완료되었다.
만약 다른 사용자의 기록이 있어 로그인이 안된다면
- 제어판 -> 사용자 계정 -> 자격증명 관리자
- 위 일반 자격 증명에 기존 로그인 기록이 존재한다면 여기서 제거해주면 된다.
git 내려받기
- Github에서 Code 버튼을 눌러 주소를 가져온다.
git clone
명령어를 통해 github에서 내려받는다.
- 에러없이 잘 가져온다.
- 이번엔 NIHAO를 추가해서 다시 커밋해본다.
- 설명 넣는 부분에 README.txt를 넣어서 설명에 들어갔다.
git push -u origin mastar
- 수정한 내용을 다시 pushg 해준다.
- 잘 업로드 되었다.
- 현재 개발자 화면에서는 NIHAO가 추가되지 않아 보이지 않는다.
- 이때, Clone이 아닌 pull을 사용한다.
clone
- 처음 개발환경을 내려받을 떄 사용
pull
- 개발 중에 바뀐 내용이 있다면 가져올 떄 사용
- 이번 경우에는 같은 개발중이지만, Nihao가 없어, 새로운 버전을 가져올 때 사용한다.
- 바뀐내용이 존재하니 pull이 작동하고, NIHAO가 출력된다.
파일 정리(삭제)
- README.txt파일을 삭제한다.
- git에서 rm명령어를 통해 삭제한다.
- git 에서 README.txt파일을 삭제한 변경사항을 commit해준다.
- 또, 원격저장소(github)에서 삭제해준다.
- Private환경 Github와 같다.
- Centos7 ova파일을 사용한다.
- CPU:4c
- RAM:8192Mb(8Gb)
- Network: Bridge
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash EXTERNAL_URL="http://[VM의 IP addr]" yum install -y gitlab-ce
cat /etc/gitlab/initial_root_password
# 패스워드 수정
- 이 패스워드를 기록해주고, VM의 IP주소로 접속해준다.
git 설치
mkdir git-test && cd $_
echo "HELLO" >> README.txt
sudo yum install git -y
git init
- git config --global user.email "test@example.com"
- 버전 관리를 위해 내 정보 설정
- git config --global user.name "cocudeny"
git add, commit
- git add README.txt
- git commit -m "add a site"
- echo "Aloha: >> README.txt
- git add README.txt
- git commit -m "add Aloha"
git rollback
- git log
- git checkout [버전 ID]
- cat README.txt
git checkout -
원격저장소 add
git remote add origin http://192.168.0.185/cocudeny/test-project.git
- 원격 저장소를 지정한다.
원격 저장소에 push
git branch -m main
- gitlab 저장소는 branch가 main으로 되어있다.
- branch -m 명령어로 main으로 설정해준다.
- branch를 먼저 안해주면, 위와 같은 저장소 경로 에러가 난다.
- 만약 이 상황이라면
git pull -u origin main
으로 pull로 branch를 초기화 해줘야 한다.
- git push origin main
- 잘 push 되었다.
git clone
git clone http://192.168.0.185/cocudeny/test-project.git
- VM에서 벗어나 git cli에서 위 명령어로 clone 해본다.
운영자에서 push
- git clone에서 받은 README.txt파일에 데이터를 추가하고, 다시 push해본다.
- 오른쪽 창과 같이 로그인 화면이 나온다.
- 로그인을 완료하면 push가 진행된다.
데이터가 잘 들어갔다.
- pull 명령어로, 변경사항을 업데이트 한다.
README.txt 삭제
- README를 삭제한다.
git rm README.txt
git commit -m "remove README"
git oush -uf origin main
- gitlab에서도 사라졌다.