Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.




Table of Contents




Info

각자가 선호하는 개발 업무환경 및 도구가 존재한다. 다음은 가이드는 기본적으로 터미널을 기반으로 제공된다. 따라서 전체 업무 프로세스에 대해 참고하여 각자의 상황에 맞도록 활용하도록 한다. 




Overview


  





Remote Branch 현황



구분

용도

비고

Remote

master또는main

TEST PROD 환경에 배포 가능한 상태로 관리되는 브랜치

dev 브랜치로부터의 PullRequest를 통해서만 변경 가능

Remote

dev

개발자가 로컬환경에서 구현한 기능을 반영하여DEV 환경에서 검증하기 위한 브랜치 

mater 브랜치의 코드 변경을위해 활용

Local

master또는 main

Remote master브랜치로부터 clone한 로컬의master브랜치

최초 소스 변경 작업 전Remote로부터 동기화 수행필요

Local

dev

개발자가 로컬환경에서 기능을 구현하는용도로 사용되는 임시 브랜치

최초 소스 변경 작업 전Remote로부터 동기화 수행필요




개발자 작업


소스 가져오기


리모트 Azure Repos 화면에서 Clone을 선택한다.

...

Code Block
youngdae.kim@youngdae_kim MINGW64 ~/ZerobigAppModDemo (main)
$ git branch
* main

youngdae.kim@youngdae_kim MINGW64 ~/ZerobigAppModDemo (main)
$ git branch -a
* main
  remotes/origin/HEAD -> origin/main
  remotes/origin/dev
  remotes/origin/main

youngdae.kim@youngdae_kim MINGW64 ~/ZerobigAppModDemo (main)
$




소스 수정하여 푸시하기

소스 수정에 앞서 다음 명령을 수행하여 로컬에 최신화된 dev 브랜치를 생성한다.

...

Code Block
youngdae.kim@youngdae_kim MINGW64 ~/ZerobigAppModDemo (dev)
$ git add .

youngdae.kim@youngdae_kim MINGW64 ~/ZerobigAppModDemo (dev)
$ git commit -m "Update Application.java"
[dev d18f0c8] Update Application.java
 1 file changed, 1 insertion(+), 1 deletion(-)

youngdae.kim@youngdae_kim MINGW64 ~/ZerobigAppModDemo (dev)
$ git push
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 8 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 540 bytes | 90.00 KiB/s, done.
Total 7 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Analyzing objects... (7/7) (7 ms)
remote: Storing packfile... done (60 ms)
remote: Storing index... done (53 ms)
To https://dev.azure.com/zerobig-devops4demo/AKSAppModDemo/_git/ZerobigAppModDemo
   ac5dd9a..d18f0c8  dev -> dev

youngdae.kim@youngdae_kim MINGW64 ~/ZerobigAppModDemo (dev)
$




Azure CI/CD 파이프라인 실행 결과 모니터링

자동으로 CI 파이프라인이 트리거 되어 실행된다.

...

이상이 없다면 파이프라인 실행결과는 다음과 같다.




DEV 환경 배포 결과 확인

현재 시점에서 TEST 환경의 AKS 클러스터에는 변경된 코드 결과가 반영되어야 한다.



 Pull Request 수행 (dev → main)


요청자 작업


이제 dev와 main 브랜치의 코드 내용이 상이하므로 Azure Repos 화면으로 이동하면 다음과 같이 Create a pull request 수행 유도 메시지가 전시된다.

...

4) 사전 지정/협의된 검토자를 등록한다, 

5) Create를 눌러 요청을 생성한다.


승인자/검토자 작업


PR 요청을 수신한 승인자 또는 검토자는 다음 화면으로 이동하게 된다.

...

이때 선택가능한 PR 옵션은 다음과 같다.


Merge (no fast forward):  모든 커밋을 보존하는 비선형 기록으로 병합
Squash commit: 모든 소스 커밋을 타겟의 단일 커밋으로 결합하는 선형 기록과 병합하거나 스쿼시를 통해 PR을 병합
Rebase and fast-forward: 소스 커밋을 타겟으로 Rebase하고 fast-forward 수행
Semi-linear merge: 타겟에 소스 커밋을 Rebase 하고 두 부모 병합 생성
PR과 관련한 보다 상세한 내용은 여기를 참조한다.

Azure CI/CD 파이프라인 실행 결과 모니터링


자동으로 CI 파이프라인이 트리거 되어 실행된다.

...

곧 자동으로 CD 파이프라인이 트리거 되어 실행된다.



TEST 환경 배포 결과 확인

TEST 환경에 배포가 이루어졌다, View logs를 선택하여 배포 로그를 확인하고 TEST 환경에 대한 동작 검증을 시행한다.

...

이제 PROD 환경에 배포 승인 대기 상태가 된다. 



PROD 환경 배포

TEST 환경에 대한 동작 검증이 완료되었으므로 특별한 내용이 없다면 승인을 진행한다.


최종 PROD에 배포가 이루어졌다, 



PR 완료 이후 소스 비교 및 로컬 소스 최신화 확인 방법


PR 승인/완료 이후 main 브랜치의 커밋 이력을 확인하면 다음과 같다,

...