Azure

[Azure] Basic YAML Pipeline in Azure DevOps (CI)

bbiyak2da 2023. 3. 23. 13:50

하단의 영상을 통해 공부 한 뒤, 정리 차원에서 작성한 게시글입니다.

구체적인 내용은 해당 유튜브를 참고하세요 :)

 

** 참고영상 : https://www.youtube.com/watch?v=HMR-uyFMT6k 

** 참고문서 (dotnet) : https://learn.microsoft.com/ko-kr/dotnet/core/tools/dotnet-run

 


#1. ASP.NET 웹앱 만들기

HelloWorldApp이라는 디렉터리를 생성한다. 이후 HelloWorldApp 디렉터리로 이동한다.

* dotnet new sln --name <솔루션 파일 이름> : 솔루션 파일 생성

솔루션 파일을 생성해준다.

* dotnet new mvc -o <프로젝트명> : MVC 웹앱 생성

MVC 웹앱을 생성해준다.

생성 확인

* dotnet sln A add B : 솔루션 파일에 하나 이상의 프로젝트 추가

 

HelloWorldApp 솔루션 파일에 HelloWorldApp.web\HelloWorldApp.Web.csproj 프로젝트를 추가한다.

* dotnet run : 소스코드 실행

 

cd HelloWorldApp.web 이동 후 소스코드 실행

해당 주소로 접속 후, 웹 확인

 


#2. Azure repos에 코드 업로드

* git init : 최초로 git init 명령어 실행시, 새로운 git 저장소 생성

 

HelloWorldApp 디렉터리로 이동

git init 실행

 

HelloWorldApp 폴더를 확인해보면, .git 이라는 로컬 저장소가 생성되어있다.

* git status : 파일 상태 확인

* git add . : 모든 파일을 git 로컬 저장소에 업로드

git status 명령어로 다시 상태 확인

* git commit -m "커밋 내용" :  commit

* git remote add origin <원격 저장소 링크> 

 

나는 Azure Repo 원격 저장소에 연결하였다.

* git push -u origin --all : 로컬 저장소에 있는 파일을 원격 저장소에 push

ctrl + shift + P 누른 뒤, create new web app 클릭

웹앱 이름 지정해준다.

리소스 그룹 지정

런타임 .NET 6

OS는 Windows로 하였다,

이후 가격 티어 F1 Free

마지막은 skip for now

 

성공적으로 생성하면, 웹앱이 배포된다.


#3. YAML 파일 활용 CI 구축 (with Azure DevOps)

https://dev.azure.com/ 접속 후, Pipelines 클릭

나는 웹앱 파일이 이미 업로드 되어있는 Azure Repos git를 선택하였다. 

ASP.NET CORE 클릭

trigger:
- none

pool:
  vmImage: windows-latest

variables:
  buildConfiguration: 'Release'

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
    feedsToUse: 'select'

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    arguments: '--configuration $(buildConfiguration)'

- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: true
    arguments: '--configuration $(buildConfiguration) --output $(build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

yaml파일에 해당 코드 입력 후,

pipeline 실행하면 성공적으로 구축된다.


#4. 테스트

index.cshtml 파일 수정 후, 다시 파이프라인을 실행해본다.

웹 페이지 내용이 바뀌어 있는지 확인하면 성공

 

#Azure #Dotnet #CICD #DevOps